Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI') (more/less context) (ignore whitespace changes)
79 files changed, 474 insertions, 711 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js index 169946a..25e82ca 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //download.js | 27 | //download.js |
31 | //Download | 28 | //Download |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_CoverActions_downloadWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_CoverActions_downloadWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_CoverActions_downloadHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_CoverActions_downloadHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_CoverActions_download(canvas, aColor, aFillColor, aThickness) | 38 | function Clipperz_PM_UI_Canvas_CoverActions_download(canvas, aColor, aFillColor, aThickness) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
59 | 56 | ||
60 | // arrow | 57 | // arrow |
61 | 58 | ||
62 | stroke = aThickness; | 59 | stroke = aThickness; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.beginPath(); | 67 | context.beginPath(); |
71 | pointX = 16.5; | 68 | pointX = 16.5; |
72 | pointY = 22.5; | 69 | pointY = 22.5; |
73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
75 | context.moveTo(pointX, pointY); | 72 | context.moveTo(pointX, pointY); |
76 | pointX = 19.5; | 73 | pointX = 19.5; |
77 | pointY = 8.5; | 74 | pointY = 8.5; |
78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
80 | context.lineTo(pointX, pointY); | 77 | context.lineTo(pointX, pointY); |
81 | pointX = 30.038; | 78 | pointX = 30.038; |
82 | pointY = 10.605; | 79 | pointY = 10.605; |
83 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
84 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
85 | context.lineTo(pointX, pointY); | 82 | context.lineTo(pointX, pointY); |
86 | pointX = 27.354; | 83 | pointX = 27.354; |
87 | pointY = 24.354; | 84 | pointY = 24.354; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | context.lineTo(pointX, pointY); | 87 | context.lineTo(pointX, pointY); |
91 | pointX = 33.28; | 88 | pointX = 33.28; |
92 | pointY = 25.293; | 89 | pointY = 25.293; |
93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
95 | context.lineTo(pointX, pointY); | 92 | context.lineTo(pointX, pointY); |
96 | pointX = 19.81; | 93 | pointX = 19.81; |
97 | pointY = 36.828; | 94 | pointY = 36.828; |
98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
100 | context.lineTo(pointX, pointY); | 97 | context.lineTo(pointX, pointY); |
101 | pointX = 10.07; | 98 | pointX = 10.07; |
102 | pointY = 21.617; | 99 | pointY = 21.617; |
103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
105 | context.lineTo(pointX, pointY); | 102 | context.lineTo(pointX, pointY); |
106 | pointX = 16.5; | 103 | pointX = 16.5; |
107 | pointY = 22.5; | 104 | pointY = 22.5; |
108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
110 | context.lineTo(pointX, pointY); | 107 | context.lineTo(pointX, pointY); |
111 | context.closePath(); | 108 | context.closePath(); |
112 | context.fillStyle = aFillColor; | 109 | context.fillStyle = aFillColor; |
113 | context.fill(); | 110 | context.fill(); |
114 | context.strokeStyle = aColor; | 111 | context.strokeStyle = aColor; |
115 | context.lineWidth = stroke; | 112 | context.lineWidth = stroke; |
116 | context.lineCap = "square"; | 113 | context.lineCap = "square"; |
117 | context.stroke(); | 114 | context.stroke(); |
118 | 115 | ||
119 | context.restore(); | 116 | context.restore(); |
120 | } | 117 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js index b8e535b..ba425ec 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js | |||
@@ -1,208 +1,205 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //look.js | 27 | //look.js |
31 | //Look | 28 | //Look |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_CoverActions_lookWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_CoverActions_lookWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_CoverActions_lookHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_CoverActions_lookHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_CoverActions_look(canvas, aColor, aFillColor, aThickness) | 38 | function Clipperz_PM_UI_Canvas_CoverActions_look(canvas, aColor, aFillColor, aThickness) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_lookWidth, kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_lookWidth, kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
59 | 56 | ||
60 | // Layer 6 | 57 | // Layer 6 |
61 | 58 | ||
62 | stroke = aThickness; | 59 | stroke = aThickness; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.save(); | 67 | context.save(); |
71 | context.translate(17.5, 23.0); | 68 | context.translate(17.5, 23.0); |
72 | context.rotate(-0.503); | 69 | context.rotate(-0.503); |
73 | context.translate(-17.5, -23.0); | 70 | context.translate(-17.5, -23.0); |
74 | context.beginPath(); | 71 | context.beginPath(); |
75 | pointX = 28.5; | 72 | pointX = 28.5; |
76 | pointY = 31.5; | 73 | pointY = 31.5; |
77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 74 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 75 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
79 | context.moveTo(pointX, pointY); | 76 | context.moveTo(pointX, pointY); |
80 | pointX = 28.5; | 77 | pointX = 28.5; |
81 | pointY = 14.5; | 78 | pointY = 14.5; |
82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 79 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 80 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
84 | context.lineTo(pointX, pointY); | 81 | context.lineTo(pointX, pointY); |
85 | pointX = 6.5; | 82 | pointX = 6.5; |
86 | pointY = 14.5; | 83 | pointY = 14.5; |
87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 84 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 85 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
89 | context.lineTo(pointX, pointY); | 86 | context.lineTo(pointX, pointY); |
90 | pointX = 6.5; | 87 | pointX = 6.5; |
91 | pointY = 31.5; | 88 | pointY = 31.5; |
92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 89 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 90 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
94 | context.lineTo(pointX, pointY); | 91 | context.lineTo(pointX, pointY); |
95 | pointX = 28.5; | 92 | pointX = 28.5; |
96 | pointY = 31.5; | 93 | pointY = 31.5; |
97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 94 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 95 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
99 | context.lineTo(pointX, pointY); | 96 | context.lineTo(pointX, pointY); |
100 | context.closePath(); | 97 | context.closePath(); |
101 | context.fillStyle = aFillColor; | 98 | context.fillStyle = aFillColor; |
102 | context.fill(); | 99 | context.fill(); |
103 | context.strokeStyle = aColor; | 100 | context.strokeStyle = aColor; |
104 | context.lineWidth = stroke; | 101 | context.lineWidth = stroke; |
105 | context.lineCap = "square"; | 102 | context.lineCap = "square"; |
106 | context.stroke(); | 103 | context.stroke(); |
107 | context.restore(); | 104 | context.restore(); |
108 | 105 | ||
109 | // Layer 3 | 106 | // Layer 3 |
110 | 107 | ||
111 | stroke = aThickness; | 108 | stroke = aThickness; |
112 | stroke *= resolution; | 109 | stroke *= resolution; |
113 | if (stroke < 1.0) | 110 | if (stroke < 1.0) |
114 | stroke = Math.ceil(stroke); | 111 | stroke = Math.ceil(stroke); |
115 | else | 112 | else |
116 | stroke = Math.round(stroke); | 113 | stroke = Math.round(stroke); |
117 | stroke /= resolution; | 114 | stroke /= resolution; |
118 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 115 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
119 | context.save(); | 116 | context.save(); |
120 | context.translate(22.5, 20.0); | 117 | context.translate(22.5, 20.0); |
121 | context.rotate(-0.071); | 118 | context.rotate(-0.071); |
122 | context.translate(-22.5, -20.0); | 119 | context.translate(-22.5, -20.0); |
123 | context.beginPath(); | 120 | context.beginPath(); |
124 | pointX = 33.5; | 121 | pointX = 33.5; |
125 | pointY = 28.5; | 122 | pointY = 28.5; |
126 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 123 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
127 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 124 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
128 | context.moveTo(pointX, pointY); | 125 | context.moveTo(pointX, pointY); |
129 | pointX = 33.5; | 126 | pointX = 33.5; |
130 | pointY = 11.5; | 127 | pointY = 11.5; |
131 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 128 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
132 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 129 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
133 | context.lineTo(pointX, pointY); | 130 | context.lineTo(pointX, pointY); |
134 | pointX = 11.5; | 131 | pointX = 11.5; |
135 | pointY = 11.5; | 132 | pointY = 11.5; |
136 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 133 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
137 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 134 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
138 | context.lineTo(pointX, pointY); | 135 | context.lineTo(pointX, pointY); |
139 | pointX = 11.5; | 136 | pointX = 11.5; |
140 | pointY = 28.5; | 137 | pointY = 28.5; |
141 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 138 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
142 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 139 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
143 | context.lineTo(pointX, pointY); | 140 | context.lineTo(pointX, pointY); |
144 | pointX = 33.5; | 141 | pointX = 33.5; |
145 | pointY = 28.5; | 142 | pointY = 28.5; |
146 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
147 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
148 | context.lineTo(pointX, pointY); | 145 | context.lineTo(pointX, pointY); |
149 | context.closePath(); | 146 | context.closePath(); |
150 | context.fillStyle = aFillColor; | 147 | context.fillStyle = aFillColor; |
151 | context.fill(); | 148 | context.fill(); |
152 | context.strokeStyle = aColor; | 149 | context.strokeStyle = aColor; |
153 | context.lineWidth = stroke; | 150 | context.lineWidth = stroke; |
154 | context.lineCap = "square"; | 151 | context.lineCap = "square"; |
155 | context.stroke(); | 152 | context.stroke(); |
156 | context.restore(); | 153 | context.restore(); |
157 | 154 | ||
158 | // Layer 4 | 155 | // Layer 4 |
159 | 156 | ||
160 | stroke = aThickness; | 157 | stroke = aThickness; |
161 | stroke *= resolution; | 158 | stroke *= resolution; |
162 | if (stroke < 1.0) | 159 | if (stroke < 1.0) |
163 | stroke = Math.ceil(stroke); | 160 | stroke = Math.ceil(stroke); |
164 | else | 161 | else |
165 | stroke = Math.round(stroke); | 162 | stroke = Math.round(stroke); |
166 | stroke /= resolution; | 163 | stroke /= resolution; |
167 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 164 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
168 | context.save(); | 165 | context.save(); |
169 | context.translate(27.5, 18.0); | 166 | context.translate(27.5, 18.0); |
170 | context.rotate(0.232); | 167 | context.rotate(0.232); |
171 | context.translate(-27.5, -18.0); | 168 | context.translate(-27.5, -18.0); |
172 | context.beginPath(); | 169 | context.beginPath(); |
173 | pointX = 38.5; | 170 | pointX = 38.5; |
174 | pointY = 26.5; | 171 | pointY = 26.5; |
175 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 172 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
176 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 173 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
177 | context.moveTo(pointX, pointY); | 174 | context.moveTo(pointX, pointY); |
178 | pointX = 38.5; | 175 | pointX = 38.5; |
179 | pointY = 9.5; | 176 | pointY = 9.5; |
180 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 177 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
181 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 178 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
182 | context.lineTo(pointX, pointY); | 179 | context.lineTo(pointX, pointY); |
183 | pointX = 16.5; | 180 | pointX = 16.5; |
184 | pointY = 9.5; | 181 | pointY = 9.5; |
185 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 182 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
186 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 183 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
187 | context.lineTo(pointX, pointY); | 184 | context.lineTo(pointX, pointY); |
188 | pointX = 16.5; | 185 | pointX = 16.5; |
189 | pointY = 26.5; | 186 | pointY = 26.5; |
190 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 187 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
191 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 188 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
192 | context.lineTo(pointX, pointY); | 189 | context.lineTo(pointX, pointY); |
193 | pointX = 38.5; | 190 | pointX = 38.5; |
194 | pointY = 26.5; | 191 | pointY = 26.5; |
195 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 192 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
196 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 193 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
197 | context.lineTo(pointX, pointY); | 194 | context.lineTo(pointX, pointY); |
198 | context.closePath(); | 195 | context.closePath(); |
199 | context.fillStyle = aFillColor; | 196 | context.fillStyle = aFillColor; |
200 | context.fill(); | 197 | context.fill(); |
201 | context.strokeStyle = aColor; | 198 | context.strokeStyle = aColor; |
202 | context.lineWidth = stroke; | 199 | context.lineWidth = stroke; |
203 | context.lineCap = "square"; | 200 | context.lineCap = "square"; |
204 | context.stroke(); | 201 | context.stroke(); |
205 | context.restore(); | 202 | context.restore(); |
206 | 203 | ||
207 | context.restore(); | 204 | context.restore(); |
208 | } | 205 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js index 9c4e5ba..5c1f860 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js | |||
@@ -1,209 +1,206 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //directLogin.js | 27 | //directLogin.js |
31 | //directLogin | 28 | //directLogin |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_directLoginWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_directLoginWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_directLoginHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_directLoginHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_directLogin(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_directLogin(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_directLoginWidth, kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_directLoginWidth, kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
59 | 56 | ||
60 | // Layer 2 | 57 | // Layer 2 |
61 | 58 | ||
62 | stroke = 6.0; | 59 | stroke = 6.0; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.beginPath(); | 67 | context.beginPath(); |
71 | pointX = 30.0; | 68 | pointX = 30.0; |
72 | pointY = 41.0; | 69 | pointY = 41.0; |
73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
75 | context.moveTo(pointX, pointY); | 72 | context.moveTo(pointX, pointY); |
76 | pointX = 45.579; | 73 | pointX = 45.579; |
77 | pointY = 25.451; | 74 | pointY = 25.451; |
78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
80 | context.lineTo(pointX, pointY); | 77 | context.lineTo(pointX, pointY); |
81 | context.strokeStyle = aColor; | 78 | context.strokeStyle = aColor; |
82 | context.lineWidth = stroke; | 79 | context.lineWidth = stroke; |
83 | context.lineCap = "square"; | 80 | context.lineCap = "square"; |
84 | context.stroke(); | 81 | context.stroke(); |
85 | 82 | ||
86 | alignStroke = 0.0; | 83 | alignStroke = 0.0; |
87 | context.beginPath(); | 84 | context.beginPath(); |
88 | pointX = 34.207; | 85 | pointX = 34.207; |
89 | pointY = 45.697; | 86 | pointY = 45.697; |
90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
92 | context.moveTo(pointX, pointY); | 89 | context.moveTo(pointX, pointY); |
93 | pointX = 24.101; | 90 | pointX = 24.101; |
94 | pointY = 37.52; | 91 | pointY = 37.52; |
95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
97 | context.lineTo(pointX, pointY); | 94 | context.lineTo(pointX, pointY); |
98 | pointX = 24.122; | 95 | pointX = 24.122; |
99 | pointY = 47.828; | 96 | pointY = 47.828; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.lineTo(pointX, pointY); | 99 | context.lineTo(pointX, pointY); |
103 | pointX = 34.207; | 100 | pointX = 34.207; |
104 | pointY = 45.697; | 101 | pointY = 45.697; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | context.closePath(); | 105 | context.closePath(); |
109 | context.fillStyle = aColor; | 106 | context.fillStyle = aColor; |
110 | context.fill(); | 107 | context.fill(); |
111 | 108 | ||
112 | stroke = 6.0; | 109 | stroke = 6.0; |
113 | stroke *= resolution; | 110 | stroke *= resolution; |
114 | if (stroke < 1.0) | 111 | if (stroke < 1.0) |
115 | stroke = Math.ceil(stroke); | 112 | stroke = Math.ceil(stroke); |
116 | else | 113 | else |
117 | stroke = Math.round(stroke); | 114 | stroke = Math.round(stroke); |
118 | stroke /= resolution; | 115 | stroke /= resolution; |
119 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 116 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
120 | context.beginPath(); | 117 | context.beginPath(); |
121 | pointX = 24.631; | 118 | pointX = 24.631; |
122 | pointY = 28.971; | 119 | pointY = 28.971; |
123 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 120 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
124 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 121 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
125 | context.moveTo(pointX, pointY); | 122 | context.moveTo(pointX, pointY); |
126 | pointX = 46.497; | 123 | pointX = 46.497; |
127 | pointY = 26.451; | 124 | pointY = 26.451; |
128 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 125 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
129 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 126 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
130 | context.lineTo(pointX, pointY); | 127 | context.lineTo(pointX, pointY); |
131 | context.strokeStyle = aColor; | 128 | context.strokeStyle = aColor; |
132 | context.stroke(); | 129 | context.stroke(); |
133 | 130 | ||
134 | alignStroke = 0.0; | 131 | alignStroke = 0.0; |
135 | context.beginPath(); | 132 | context.beginPath(); |
136 | pointX = 25.014; | 133 | pointX = 25.014; |
137 | pointY = 35.265; | 134 | pointY = 35.265; |
138 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 135 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
139 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 136 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
140 | context.moveTo(pointX, pointY); | 137 | context.moveTo(pointX, pointY); |
141 | pointX = 22.166; | 138 | pointX = 22.166; |
142 | pointY = 22.58; | 139 | pointY = 22.58; |
143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
145 | context.lineTo(pointX, pointY); | 142 | context.lineTo(pointX, pointY); |
146 | pointX = 15.784; | 143 | pointX = 15.784; |
147 | pointY = 30.675; | 144 | pointY = 30.675; |
148 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 145 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
149 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 146 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
150 | context.lineTo(pointX, pointY); | 147 | context.lineTo(pointX, pointY); |
151 | pointX = 25.014; | 148 | pointX = 25.014; |
152 | pointY = 35.265; | 149 | pointY = 35.265; |
153 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 150 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
154 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 151 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
155 | context.lineTo(pointX, pointY); | 152 | context.lineTo(pointX, pointY); |
156 | context.closePath(); | 153 | context.closePath(); |
157 | context.fillStyle = aColor; | 154 | context.fillStyle = aColor; |
158 | context.fill(); | 155 | context.fill(); |
159 | 156 | ||
160 | stroke = 6.0; | 157 | stroke = 6.0; |
161 | stroke *= resolution; | 158 | stroke *= resolution; |
162 | if (stroke < 1.0) | 159 | if (stroke < 1.0) |
163 | stroke = Math.ceil(stroke); | 160 | stroke = Math.ceil(stroke); |
164 | else | 161 | else |
165 | stroke = Math.round(stroke); | 162 | stroke = Math.round(stroke); |
166 | stroke /= resolution; | 163 | stroke /= resolution; |
167 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 164 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
168 | context.beginPath(); | 165 | context.beginPath(); |
169 | pointX = 42.282; | 166 | pointX = 42.282; |
170 | pointY = 47.03; | 167 | pointY = 47.03; |
171 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 168 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
172 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 169 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
173 | context.moveTo(pointX, pointY); | 170 | context.moveTo(pointX, pointY); |
174 | pointX = 47.771; | 171 | pointX = 47.771; |
175 | pointY = 25.714; | 172 | pointY = 25.714; |
176 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 173 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
177 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 174 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
178 | context.lineTo(pointX, pointY); | 175 | context.lineTo(pointX, pointY); |
179 | context.strokeStyle = aColor; | 176 | context.strokeStyle = aColor; |
180 | context.stroke(); | 177 | context.stroke(); |
181 | 178 | ||
182 | alignStroke = 0.0; | 179 | alignStroke = 0.0; |
183 | context.beginPath(); | 180 | context.beginPath(); |
184 | pointX = 48.294; | 181 | pointX = 48.294; |
185 | pointY = 48.929; | 182 | pointY = 48.929; |
186 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 183 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
187 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 184 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
188 | context.moveTo(pointX, pointY); | 185 | context.moveTo(pointX, pointY); |
189 | pointX = 35.432; | 186 | pointX = 35.432; |
190 | pointY = 47.039; | 187 | pointY = 47.039; |
191 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 188 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
192 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 189 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
193 | context.lineTo(pointX, pointY); | 190 | context.lineTo(pointX, pointY); |
194 | pointX = 40.7; | 191 | pointX = 40.7; |
195 | pointY = 55.899; | 192 | pointY = 55.899; |
196 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 193 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
197 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 194 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
198 | context.lineTo(pointX, pointY); | 195 | context.lineTo(pointX, pointY); |
199 | pointX = 48.294; | 196 | pointX = 48.294; |
200 | pointY = 48.929; | 197 | pointY = 48.929; |
201 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 198 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
202 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 199 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
203 | context.lineTo(pointX, pointY); | 200 | context.lineTo(pointX, pointY); |
204 | context.closePath(); | 201 | context.closePath(); |
205 | context.fillStyle = aColor; | 202 | context.fillStyle = aColor; |
206 | context.fill(); | 203 | context.fill(); |
207 | 204 | ||
208 | context.restore(); | 205 | context.restore(); |
209 | } | 206 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js index 501b69b..b829ed6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //protect.js | 27 | //protect.js |
31 | //protect | 28 | //protect |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_protectWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_protectWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_protectHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_protectHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_protect(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_protect(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var stroke; | 50 | var stroke; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_protectWidth, kClipperz_PM_UI_Canvas_Features_protectHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_protectWidth, kClipperz_PM_UI_Canvas_Features_protectHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 38.5; | 65 | pointX = 38.5; |
69 | pointY = 36.0; | 66 | pointY = 36.0; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 37.068; | 70 | pointX = 37.068; |
74 | pointY = 38.816; | 71 | pointY = 38.816; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 37.41; | 74 | controlPoint1X = 37.41; |
78 | controlPoint1Y = 36.234; | 75 | controlPoint1Y = 36.234; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 37.175; | 78 | controlPoint2X = 37.175; |
82 | controlPoint2Y = 37.907; | 79 | controlPoint2Y = 37.907; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 37.031; | 83 | pointX = 37.031; |
87 | pointY = 40.802; | 84 | pointY = 40.802; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 36.991; | 87 | controlPoint1X = 36.991; |
91 | controlPoint1Y = 39.474; | 88 | controlPoint1Y = 39.474; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 36.98; | 91 | controlPoint2X = 36.98; |
95 | controlPoint2Y = 40.141; | 92 | controlPoint2Y = 40.141; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 37.258; | 96 | pointX = 37.258; |
100 | pointY = 42.23; | 97 | pointY = 42.23; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 37.068; | 100 | controlPoint1X = 37.068; |
104 | controlPoint1Y = 41.283; | 101 | controlPoint1Y = 41.283; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 37.139; | 104 | controlPoint2X = 37.139; |
108 | controlPoint2Y = 41.762; | 105 | controlPoint2Y = 41.762; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 38.348; | 109 | pointX = 38.348; |
113 | pointY = 43.979; | 110 | pointY = 43.979; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 37.402; | 113 | controlPoint1X = 37.402; |
117 | controlPoint1Y = 42.799; | 114 | controlPoint1Y = 42.799; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 37.682; | 117 | controlPoint2X = 37.682; |
121 | controlPoint2Y = 43.798; | 118 | controlPoint2Y = 43.798; |
122 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 119 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
123 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 120 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
124 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 121 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
125 | pointX = 38.5; | 122 | pointX = 38.5; |
126 | pointY = 36.0; | 123 | pointY = 36.0; |
127 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 124 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
128 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 125 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
129 | controlPoint1X = 40.249; | 126 | controlPoint1X = 40.249; |
130 | controlPoint1Y = 44.497; | 127 | controlPoint1Y = 44.497; |
131 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 128 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
132 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 129 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
133 | controlPoint2X = 40.723; | 130 | controlPoint2X = 40.723; |
134 | controlPoint2Y = 36.303; | 131 | controlPoint2Y = 36.303; |
135 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 132 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
136 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 133 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
137 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 134 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
138 | pointX = 38.5; | 135 | pointX = 38.5; |
139 | pointY = 36.0; | 136 | pointY = 36.0; |
140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 137 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 138 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
142 | context.lineTo(pointX, pointY); | 139 | context.lineTo(pointX, pointY); |
143 | context.closePath(); | 140 | context.closePath(); |
144 | pointX = 50.0; | 141 | pointX = 50.0; |
145 | pointY = 52.0; | 142 | pointY = 52.0; |
146 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
147 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
148 | context.moveTo(pointX, pointY); | 145 | context.moveTo(pointX, pointY); |
149 | pointX = 26.0; | 146 | pointX = 26.0; |
150 | pointY = 52.0; | 147 | pointY = 52.0; |
151 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 148 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
152 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 149 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
153 | context.lineTo(pointX, pointY); | 150 | context.lineTo(pointX, pointY); |
154 | pointX = 26.0; | 151 | pointX = 26.0; |
155 | pointY = 33.0; | 152 | pointY = 33.0; |
156 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 153 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
157 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 154 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
158 | context.lineTo(pointX, pointY); | 155 | context.lineTo(pointX, pointY); |
159 | pointX = 50.0; | 156 | pointX = 50.0; |
160 | pointY = 33.0; | 157 | pointY = 33.0; |
161 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 158 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
162 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 159 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
163 | context.lineTo(pointX, pointY); | 160 | context.lineTo(pointX, pointY); |
164 | pointX = 50.0; | 161 | pointX = 50.0; |
165 | pointY = 52.0; | 162 | pointY = 52.0; |
166 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 163 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
167 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 164 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
168 | context.lineTo(pointX, pointY); | 165 | context.lineTo(pointX, pointY); |
169 | context.closePath(); | 166 | context.closePath(); |
170 | context.fillStyle = aColor; | 167 | context.fillStyle = aColor; |
171 | context.fill(); | 168 | context.fill(); |
172 | 169 | ||
173 | alignStroke = 0.0; | 170 | alignStroke = 0.0; |
174 | context.beginPath(); | 171 | context.beginPath(); |
175 | pointX = 47.0; | 172 | pointX = 47.0; |
176 | pointY = 32.463; | 173 | pointY = 32.463; |
177 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 174 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
178 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 175 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
179 | context.moveTo(pointX, pointY); | 176 | context.moveTo(pointX, pointY); |
180 | pointX = 38.0; | 177 | pointX = 38.0; |
181 | pointY = 52.0; | 178 | pointY = 52.0; |
182 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 179 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
183 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 180 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
184 | controlPoint1X = 47.0; | 181 | controlPoint1X = 47.0; |
185 | controlPoint1Y = 52.925; | 182 | controlPoint1Y = 52.925; |
186 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 183 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
187 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 184 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
188 | controlPoint2X = 38.0; | 185 | controlPoint2X = 38.0; |
189 | controlPoint2Y = 52.0; | 186 | controlPoint2Y = 52.0; |
190 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 187 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
191 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 188 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
192 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 189 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
193 | pointX = 29.0; | 190 | pointX = 29.0; |
194 | pointY = 32.463; | 191 | pointY = 32.463; |
195 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 192 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
196 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 193 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
197 | controlPoint1X = 38.0; | 194 | controlPoint1X = 38.0; |
198 | controlPoint1Y = 52.0; | 195 | controlPoint1Y = 52.0; |
199 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 196 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
200 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 197 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
201 | controlPoint2X = 29.0; | 198 | controlPoint2X = 29.0; |
202 | controlPoint2Y = 52.925; | 199 | controlPoint2Y = 52.925; |
203 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 200 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
204 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 201 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
205 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 202 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
206 | pointX = 47.0; | 203 | pointX = 47.0; |
207 | pointY = 32.463; | 204 | pointY = 32.463; |
208 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 205 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
209 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 206 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
210 | controlPoint1X = 29.0; | 207 | controlPoint1X = 29.0; |
211 | controlPoint1Y = 12.0; | 208 | controlPoint1Y = 12.0; |
212 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 209 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
213 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 210 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
214 | controlPoint2X = 47.0; | 211 | controlPoint2X = 47.0; |
215 | controlPoint2Y = 12.0; | 212 | controlPoint2Y = 12.0; |
216 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 213 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js index 825a17e..8d73cc7 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //share.js | 27 | //share.js |
31 | //share | 28 | //share |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_shareWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_shareWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_shareHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_shareHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_share(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_share(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var stroke; | 50 | var stroke; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_shareWidth, kClipperz_PM_UI_Canvas_Features_shareHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_shareWidth, kClipperz_PM_UI_Canvas_Features_shareHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 43.179; | 65 | pointX = 43.179; |
69 | pointY = 18.621; | 66 | pointY = 18.621; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 37.163; | 70 | pointX = 37.163; |
74 | pointY = 12.605; | 71 | pointY = 12.605; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 43.179; | 74 | controlPoint1X = 43.179; |
78 | controlPoint1Y = 15.32; | 75 | controlPoint1Y = 15.32; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 40.463; | 78 | controlPoint2X = 40.463; |
82 | controlPoint2Y = 12.605; | 79 | controlPoint2Y = 12.605; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 31.147; | 83 | pointX = 31.147; |
87 | pointY = 18.621; | 84 | pointY = 18.621; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 33.863; | 87 | controlPoint1X = 33.863; |
91 | controlPoint1Y = 12.605; | 88 | controlPoint1Y = 12.605; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 31.147; | 91 | controlPoint2X = 31.147; |
95 | controlPoint2Y = 15.32; | 92 | controlPoint2Y = 15.32; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 37.163; | 96 | pointX = 37.163; |
100 | pointY = 24.637; | 97 | pointY = 24.637; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 31.147; | 100 | controlPoint1X = 31.147; |
104 | controlPoint1Y = 21.921; | 101 | controlPoint1Y = 21.921; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 33.863; | 104 | controlPoint2X = 33.863; |
108 | controlPoint2Y = 24.637; | 105 | controlPoint2Y = 24.637; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 43.179; | 109 | pointX = 43.179; |
113 | pointY = 18.621; | 110 | pointY = 18.621; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 40.463; | 113 | controlPoint1X = 40.463; |
117 | controlPoint1Y = 24.637; | 114 | controlPoint1Y = 24.637; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 43.179; | 117 | controlPoint2X = 43.179; |
121 | controlPoint2Y = 21.921; | 118 | controlPoint2Y = 21.921; |
122 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 119 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
123 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 120 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
124 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 121 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
125 | context.closePath(); | 122 | context.closePath(); |
126 | context.fillStyle = aColor; | 123 | context.fillStyle = aColor; |
127 | context.fill(); | 124 | context.fill(); |
128 | 125 | ||
129 | alignStroke = 0.0; | 126 | alignStroke = 0.0; |
130 | context.beginPath(); | 127 | context.beginPath(); |
131 | pointX = 56.548; | 128 | pointX = 56.548; |
132 | pointY = 53.379; | 129 | pointY = 53.379; |
133 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 130 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
134 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 131 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
135 | context.moveTo(pointX, pointY); | 132 | context.moveTo(pointX, pointY); |
136 | pointX = 51.2; | 133 | pointX = 51.2; |
137 | pointY = 48.032; | 134 | pointY = 48.032; |
138 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 135 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
139 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 136 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
140 | controlPoint1X = 56.548; | 137 | controlPoint1X = 56.548; |
141 | controlPoint1Y = 50.446; | 138 | controlPoint1Y = 50.446; |
142 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 139 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
143 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 140 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
144 | controlPoint2X = 54.134; | 141 | controlPoint2X = 54.134; |
145 | controlPoint2Y = 48.032; | 142 | controlPoint2Y = 48.032; |
146 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 143 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
147 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 144 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
148 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 145 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
149 | pointX = 45.853; | 146 | pointX = 45.853; |
150 | pointY = 53.379; | 147 | pointY = 53.379; |
151 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 148 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
152 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 149 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
153 | controlPoint1X = 48.267; | 150 | controlPoint1X = 48.267; |
154 | controlPoint1Y = 48.032; | 151 | controlPoint1Y = 48.032; |
155 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 152 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
156 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 153 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
157 | controlPoint2X = 45.853; | 154 | controlPoint2X = 45.853; |
158 | controlPoint2Y = 50.446; | 155 | controlPoint2Y = 50.446; |
159 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 156 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
160 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 157 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
161 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 158 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
162 | pointX = 51.2; | 159 | pointX = 51.2; |
163 | pointY = 58.727; | 160 | pointY = 58.727; |
164 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 161 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
165 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 162 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
166 | controlPoint1X = 45.853; | 163 | controlPoint1X = 45.853; |
167 | controlPoint1Y = 56.313; | 164 | controlPoint1Y = 56.313; |
168 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 165 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
169 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 166 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
170 | controlPoint2X = 48.267; | 167 | controlPoint2X = 48.267; |
171 | controlPoint2Y = 58.727; | 168 | controlPoint2Y = 58.727; |
172 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 169 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
173 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 170 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
174 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 171 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
175 | pointX = 56.548; | 172 | pointX = 56.548; |
176 | pointY = 53.379; | 173 | pointY = 53.379; |
177 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 174 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
178 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 175 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
179 | controlPoint1X = 54.134; | 176 | controlPoint1X = 54.134; |
180 | controlPoint1Y = 58.727; | 177 | controlPoint1Y = 58.727; |
181 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 178 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
182 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 179 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
183 | controlPoint2X = 56.548; | 180 | controlPoint2X = 56.548; |
184 | controlPoint2Y = 56.313; | 181 | controlPoint2Y = 56.313; |
185 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 182 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
186 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 183 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
187 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 184 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
188 | context.closePath(); | 185 | context.closePath(); |
189 | context.fillStyle = aColor; | 186 | context.fillStyle = aColor; |
190 | context.fill(); | 187 | context.fill(); |
191 | 188 | ||
192 | alignStroke = 0.0; | 189 | alignStroke = 0.0; |
193 | context.beginPath(); | 190 | context.beginPath(); |
194 | pointX = 31.147; | 191 | pointX = 31.147; |
195 | pointY = 38.674; | 192 | pointY = 38.674; |
196 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 193 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
197 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 194 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
198 | context.moveTo(pointX, pointY); | 195 | context.moveTo(pointX, pointY); |
199 | pointX = 25.8; | 196 | pointX = 25.8; |
200 | pointY = 33.326; | 197 | pointY = 33.326; |
201 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 198 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
202 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 199 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
203 | controlPoint1X = 31.147; | 200 | controlPoint1X = 31.147; |
204 | controlPoint1Y = 35.74; | 201 | controlPoint1Y = 35.74; |
205 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 202 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
206 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 203 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
207 | controlPoint2X = 28.733; | 204 | controlPoint2X = 28.733; |
208 | controlPoint2Y = 33.326; | 205 | controlPoint2Y = 33.326; |
209 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 206 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
210 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 207 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
211 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 208 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
212 | pointX = 20.452; | 209 | pointX = 20.452; |
213 | pointY = 38.674; | 210 | pointY = 38.674; |
214 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 211 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
215 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 212 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
216 | controlPoint1X = 22.866; | 213 | controlPoint1X = 22.866; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js index eaeb7f1..572d9be 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //store.js | 27 | //store.js |
31 | //store | 28 | //store |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_storeWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_storeWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_storeHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_storeHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_store(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_store(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_storeWidth, kClipperz_PM_UI_Canvas_Features_storeHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_storeWidth, kClipperz_PM_UI_Canvas_Features_storeHeight); |
58 | 55 | ||
59 | // Layer 1 | 56 | // Layer 1 |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 27.0; | 60 | pointX = 27.0; |
64 | pointY = 29.5; | 61 | pointY = 29.5; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 27.0; | 65 | pointX = 27.0; |
69 | pointY = 24.5; | 66 | pointY = 24.5; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 22.0; | 70 | pointX = 22.0; |
74 | pointY = 24.5; | 71 | pointY = 24.5; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 22.0; | 75 | pointX = 22.0; |
79 | pointY = 29.5; | 76 | pointY = 29.5; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 27.0; | 80 | pointX = 27.0; |
84 | pointY = 29.5; | 81 | pointY = 29.5; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | context.closePath(); | 85 | context.closePath(); |
89 | context.fillStyle = aColor; | 86 | context.fillStyle = aColor; |
90 | context.fill(); | 87 | context.fill(); |
91 | 88 | ||
92 | alignStroke = 0.0; | 89 | alignStroke = 0.0; |
93 | context.beginPath(); | 90 | context.beginPath(); |
94 | pointX = 54.0; | 91 | pointX = 54.0; |
95 | pointY = 29.5; | 92 | pointY = 29.5; |
96 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
97 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
98 | context.moveTo(pointX, pointY); | 95 | context.moveTo(pointX, pointY); |
99 | pointX = 54.0; | 96 | pointX = 54.0; |
100 | pointY = 24.5; | 97 | pointY = 24.5; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | context.lineTo(pointX, pointY); | 100 | context.lineTo(pointX, pointY); |
104 | pointX = 29.0; | 101 | pointX = 29.0; |
105 | pointY = 24.5; | 102 | pointY = 24.5; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | context.lineTo(pointX, pointY); | 105 | context.lineTo(pointX, pointY); |
109 | pointX = 29.0; | 106 | pointX = 29.0; |
110 | pointY = 29.5; | 107 | pointY = 29.5; |
111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
113 | context.lineTo(pointX, pointY); | 110 | context.lineTo(pointX, pointY); |
114 | pointX = 54.0; | 111 | pointX = 54.0; |
115 | pointY = 29.5; | 112 | pointY = 29.5; |
116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
118 | context.lineTo(pointX, pointY); | 115 | context.lineTo(pointX, pointY); |
119 | context.closePath(); | 116 | context.closePath(); |
120 | context.fillStyle = aColor; | 117 | context.fillStyle = aColor; |
121 | context.fill(); | 118 | context.fill(); |
122 | 119 | ||
123 | alignStroke = 0.0; | 120 | alignStroke = 0.0; |
124 | context.beginPath(); | 121 | context.beginPath(); |
125 | pointX = 43.0; | 122 | pointX = 43.0; |
126 | pointY = 37.0; | 123 | pointY = 37.0; |
127 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 124 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
128 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 125 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
129 | context.moveTo(pointX, pointY); | 126 | context.moveTo(pointX, pointY); |
130 | pointX = 43.0; | 127 | pointX = 43.0; |
131 | pointY = 32.0; | 128 | pointY = 32.0; |
132 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 129 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
133 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 130 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
134 | context.lineTo(pointX, pointY); | 131 | context.lineTo(pointX, pointY); |
135 | pointX = 29.0; | 132 | pointX = 29.0; |
136 | pointY = 32.0; | 133 | pointY = 32.0; |
137 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 134 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
138 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 135 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
139 | context.lineTo(pointX, pointY); | 136 | context.lineTo(pointX, pointY); |
140 | pointX = 29.0; | 137 | pointX = 29.0; |
141 | pointY = 37.0; | 138 | pointY = 37.0; |
142 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 139 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
143 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 140 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
144 | context.lineTo(pointX, pointY); | 141 | context.lineTo(pointX, pointY); |
145 | pointX = 43.0; | 142 | pointX = 43.0; |
146 | pointY = 37.0; | 143 | pointY = 37.0; |
147 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 144 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
148 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 145 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
149 | context.lineTo(pointX, pointY); | 146 | context.lineTo(pointX, pointY); |
150 | context.closePath(); | 147 | context.closePath(); |
151 | context.fillStyle = aColor; | 148 | context.fillStyle = aColor; |
152 | context.fill(); | 149 | context.fill(); |
153 | 150 | ||
154 | alignStroke = 0.0; | 151 | alignStroke = 0.0; |
155 | context.beginPath(); | 152 | context.beginPath(); |
156 | pointX = 27.0; | 153 | pointX = 27.0; |
157 | pointY = 37.0; | 154 | pointY = 37.0; |
158 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 155 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
159 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 156 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
160 | context.moveTo(pointX, pointY); | 157 | context.moveTo(pointX, pointY); |
161 | pointX = 27.0; | 158 | pointX = 27.0; |
162 | pointY = 32.0; | 159 | pointY = 32.0; |
163 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 160 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
164 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 161 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
165 | context.lineTo(pointX, pointY); | 162 | context.lineTo(pointX, pointY); |
166 | pointX = 22.0; | 163 | pointX = 22.0; |
167 | pointY = 32.0; | 164 | pointY = 32.0; |
168 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 165 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
169 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 166 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
170 | context.lineTo(pointX, pointY); | 167 | context.lineTo(pointX, pointY); |
171 | pointX = 22.0; | 168 | pointX = 22.0; |
172 | pointY = 37.0; | 169 | pointY = 37.0; |
173 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 170 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
174 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 171 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
175 | context.lineTo(pointX, pointY); | 172 | context.lineTo(pointX, pointY); |
176 | pointX = 27.0; | 173 | pointX = 27.0; |
177 | pointY = 37.0; | 174 | pointY = 37.0; |
178 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 175 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
179 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 176 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
180 | context.lineTo(pointX, pointY); | 177 | context.lineTo(pointX, pointY); |
181 | context.closePath(); | 178 | context.closePath(); |
182 | context.fillStyle = aColor; | 179 | context.fillStyle = aColor; |
183 | context.fill(); | 180 | context.fill(); |
184 | 181 | ||
185 | alignStroke = 0.0; | 182 | alignStroke = 0.0; |
186 | context.beginPath(); | 183 | context.beginPath(); |
187 | pointX = 27.0; | 184 | pointX = 27.0; |
188 | pointY = 44.0; | 185 | pointY = 44.0; |
189 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 186 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
190 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 187 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
191 | context.moveTo(pointX, pointY); | 188 | context.moveTo(pointX, pointY); |
192 | pointX = 27.0; | 189 | pointX = 27.0; |
193 | pointY = 39.0; | 190 | pointY = 39.0; |
194 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 191 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
195 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 192 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
196 | context.lineTo(pointX, pointY); | 193 | context.lineTo(pointX, pointY); |
197 | pointX = 22.0; | 194 | pointX = 22.0; |
198 | pointY = 39.0; | 195 | pointY = 39.0; |
199 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 196 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
200 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 197 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
201 | context.lineTo(pointX, pointY); | 198 | context.lineTo(pointX, pointY); |
202 | pointX = 22.0; | 199 | pointX = 22.0; |
203 | pointY = 44.0; | 200 | pointY = 44.0; |
204 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 201 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
205 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 202 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
206 | context.lineTo(pointX, pointY); | 203 | context.lineTo(pointX, pointY); |
207 | pointX = 27.0; | 204 | pointX = 27.0; |
208 | pointY = 44.0; | 205 | pointY = 44.0; |
209 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 206 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
210 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 207 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
211 | context.lineTo(pointX, pointY); | 208 | context.lineTo(pointX, pointY); |
212 | context.closePath(); | 209 | context.closePath(); |
213 | context.fillStyle = aColor; | 210 | context.fillStyle = aColor; |
214 | context.fill(); | 211 | context.fill(); |
215 | 212 | ||
216 | alignStroke = 0.0; | 213 | alignStroke = 0.0; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js index 5de2e96..b9443bd 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js | |||
@@ -1,68 +1,65 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Canvas'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Canvas'); |
30 | 27 | ||
31 | MochiKit.Base.update(Clipperz.PM.UI.Canvas , { | 28 | MochiKit.Base.update(Clipperz.PM.UI.Canvas , { |
32 | 'marks': { | 29 | 'marks': { |
33 | '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark, | 30 | '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark, |
34 | '?':Clipperz_PM_UI_Canvas_Marks_questionMark, | 31 | '?':Clipperz_PM_UI_Canvas_Marks_questionMark, |
35 | 'i':Clipperz_PM_UI_Canvas_Marks_info | 32 | 'i':Clipperz_PM_UI_Canvas_Marks_info |
36 | }, | 33 | }, |
37 | 34 | ||
38 | 'features': { | 35 | 'features': { |
39 | 'store': Clipperz_PM_UI_Canvas_Features_store, | 36 | 'store': Clipperz_PM_UI_Canvas_Features_store, |
40 | 'protect': Clipperz_PM_UI_Canvas_Features_protect, | 37 | 'protect': Clipperz_PM_UI_Canvas_Features_protect, |
41 | 'directLogin':Clipperz_PM_UI_Canvas_Features_directLogin, | 38 | 'directLogin':Clipperz_PM_UI_Canvas_Features_directLogin, |
42 | 'share': Clipperz_PM_UI_Canvas_Features_share | 39 | 'share': Clipperz_PM_UI_Canvas_Features_share |
43 | }, | 40 | }, |
44 | 41 | ||
45 | 'tips': { | 42 | 'tips': { |
46 | 'open': Clipperz_PM_UI_Canvas_Tips_open, | 43 | 'open': Clipperz_PM_UI_Canvas_Tips_open, |
47 | 'close': Clipperz_PM_UI_Canvas_Tips_close | 44 | 'close': Clipperz_PM_UI_Canvas_Tips_close |
48 | }, | 45 | }, |
49 | 46 | ||
50 | 'star': { | 47 | 'star': { |
51 | 'normal': Clipperz_PM_UI_Canvas_Star_normal | 48 | 'normal': Clipperz_PM_UI_Canvas_Star_normal |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'coverActions': { | 51 | 'coverActions': { |
55 | 'look': Clipperz_PM_UI_Canvas_CoverActions_look, | 52 | 'look': Clipperz_PM_UI_Canvas_CoverActions_look, |
56 | 'download': Clipperz_PM_UI_Canvas_CoverActions_download | 53 | 'download': Clipperz_PM_UI_Canvas_CoverActions_download |
57 | }, | 54 | }, |
58 | 55 | ||
59 | 'registerButton': { | 56 | 'registerButton': { |
60 | 'normal': Clipperz_PM_UI_Canvas_RegisterButton_normal | 57 | 'normal': Clipperz_PM_UI_Canvas_RegisterButton_normal |
61 | }, | 58 | }, |
62 | 59 | ||
63 | 'logo': { | 60 | 'logo': { |
64 | 'normal': Clipperz_PM_UI_Canvas_Logo_normal | 61 | 'normal': Clipperz_PM_UI_Canvas_Logo_normal |
65 | }, | 62 | }, |
66 | 63 | ||
67 | __syntaxFix__: "syntax fix" | 64 | __syntaxFix__: "syntax fix" |
68 | }); | 65 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js index e0bea36..de9d3aa 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js | |||
@@ -1,65 +1,62 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/25/10 | 30 | //Created by Giulio Cesare Solaroli on 3/25/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Logo_normalWidth = 150.0; | 35 | var kClipperz_PM_UI_Canvas_Logo_normalWidth = 150.0; |
39 | var kClipperz_PM_UI_Canvas_Logo_normalHeight = 39.0; | 36 | var kClipperz_PM_UI_Canvas_Logo_normalHeight = 39.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Logo_normal(canvas, aMainColor, aSecondaryColor) | 38 | function Clipperz_PM_UI_Canvas_Logo_normal(canvas, aMainColor, aSecondaryColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var string; | 41 | var string; |
45 | 42 | ||
46 | context.save(); | 43 | context.save(); |
47 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Logo_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Logo_normalHeight); | 44 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Logo_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Logo_normalHeight); |
48 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Logo_normalWidth, kClipperz_PM_UI_Canvas_Logo_normalHeight); | 45 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Logo_normalWidth, kClipperz_PM_UI_Canvas_Logo_normalHeight); |
49 | 46 | ||
50 | // clipper… | 47 | // clipper… |
51 | 48 | ||
52 | string = "clipper"; | 49 | string = "clipper"; |
53 | context.font = "38.0pt Helvetica-Bold"; | 50 | context.font = "38.0pt Helvetica-Bold"; |
54 | context.fillStyle = aMainColor; | 51 | context.fillStyle = aMainColor; |
55 | context.fillText(string, -9.0, -9.0); | 52 | context.fillText(string, -9.0, -9.0); |
56 | 53 | ||
57 | // …z | 54 | // …z |
58 | 55 | ||
59 | string = "z"; | 56 | string = "z"; |
60 | context.font = "38.0pt Helvetica-Bold"; | 57 | context.font = "38.0pt Helvetica-Bold"; |
61 | context.fillStyle = aSecondaryColor; | 58 | context.fillStyle = aSecondaryColor; |
62 | context.fillText(string, 125.0, -9.0); | 59 | context.fillText(string, 125.0, -9.0); |
63 | 60 | ||
64 | context.restore(); | 61 | context.restore(); |
65 | } | 62 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js index f3ae04d..02f2f80 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //exclamationMark.js | 27 | //exclamationMark.js |
31 | //! | 28 | //! |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_exclamationMark(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_exclamationMark(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | if (window.devicePixelRatio) | 50 | if (window.devicePixelRatio) |
54 | resolution = window.devicePixelRatio; | 51 | resolution = window.devicePixelRatio; |
55 | else | 52 | else |
56 | resolution = 1.0; | 53 | resolution = 1.0; |
57 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
58 | 55 | ||
59 | context.save(); | 56 | context.save(); |
60 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
61 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
62 | 59 | ||
63 | // Layer 1 | 60 | // Layer 1 |
64 | 61 | ||
65 | alignStroke = 0.0; | 62 | alignStroke = 0.0; |
66 | context.beginPath(); | 63 | context.beginPath(); |
67 | pointX = 26.499; | 64 | pointX = 26.499; |
68 | pointY = 10.848; | 65 | pointY = 10.848; |
69 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 66 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
70 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 67 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
71 | context.moveTo(pointX, pointY); | 68 | context.moveTo(pointX, pointY); |
72 | pointX = 20.887; | 69 | pointX = 20.887; |
73 | pointY = 11.584; | 70 | pointY = 11.584; |
74 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
75 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
76 | controlPoint1X = 25.395; | 73 | controlPoint1X = 25.395; |
77 | controlPoint1Y = 10.802; | 74 | controlPoint1Y = 10.802; |
78 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 75 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
79 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
80 | controlPoint2X = 22.175; | 77 | controlPoint2X = 22.175; |
81 | controlPoint2Y = 11.078; | 78 | controlPoint2Y = 11.078; |
82 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 79 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
83 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
84 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 81 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
85 | pointX = 20.013; | 82 | pointX = 20.013; |
86 | pointY = 13.194; | 83 | pointY = 13.194; |
87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 84 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 85 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
89 | controlPoint1X = 20.335; | 86 | controlPoint1X = 20.335; |
90 | controlPoint1Y = 11.814; | 87 | controlPoint1Y = 11.814; |
91 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 88 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
92 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
93 | controlPoint2X = 19.921; | 90 | controlPoint2X = 19.921; |
94 | controlPoint2Y = 12.826; | 91 | controlPoint2Y = 12.826; |
95 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 92 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
96 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
97 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 94 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
98 | pointX = 23.049; | 95 | pointX = 23.049; |
99 | pointY = 28.788; | 96 | pointY = 28.788; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | controlPoint1X = 20.243; | 99 | controlPoint1X = 20.243; |
103 | controlPoint1Y = 15.448; | 100 | controlPoint1Y = 15.448; |
104 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 101 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
105 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
106 | controlPoint2X = 22.589; | 103 | controlPoint2X = 22.589; |
107 | controlPoint2Y = 26.35; | 104 | controlPoint2Y = 26.35; |
108 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 105 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
109 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
110 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 107 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
111 | pointX = 25.027; | 108 | pointX = 25.027; |
112 | pointY = 29.156; | 109 | pointY = 29.156; |
113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
115 | controlPoint1X = 23.279; | 112 | controlPoint1X = 23.279; |
116 | controlPoint1Y = 29.018; | 113 | controlPoint1Y = 29.018; |
117 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 114 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
118 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
119 | controlPoint2X = 24.705; | 116 | controlPoint2X = 24.705; |
120 | controlPoint2Y = 29.202; | 117 | controlPoint2Y = 29.202; |
121 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 118 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
122 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 119 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
123 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 120 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
124 | pointX = 27.971; | 121 | pointX = 27.971; |
125 | pointY = 11.354; | 122 | pointY = 11.354; |
126 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 123 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
127 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 124 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
128 | controlPoint1X = 25.809; | 125 | controlPoint1X = 25.809; |
129 | controlPoint1Y = 25.384; | 126 | controlPoint1Y = 25.384; |
130 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 127 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
131 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 128 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
132 | controlPoint2X = 27.971; | 129 | controlPoint2X = 27.971; |
133 | controlPoint2Y = 12.826; | 130 | controlPoint2Y = 12.826; |
134 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 131 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
135 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 132 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
136 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 133 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
137 | pointX = 26.499; | 134 | pointX = 26.499; |
138 | pointY = 10.848; | 135 | pointY = 10.848; |
139 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 136 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
140 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 137 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
141 | controlPoint1X = 27.557; | 138 | controlPoint1X = 27.557; |
142 | controlPoint1Y = 11.032; | 139 | controlPoint1Y = 11.032; |
143 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 140 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
144 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 141 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
145 | controlPoint2X = 26.913; | 142 | controlPoint2X = 26.913; |
146 | controlPoint2Y = 10.848; | 143 | controlPoint2Y = 10.848; |
147 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 144 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
148 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 145 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
149 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 146 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
150 | pointX = 26.499; | 147 | pointX = 26.499; |
151 | pointY = 10.848; | 148 | pointY = 10.848; |
152 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 149 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
153 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 150 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
154 | context.lineTo(pointX, pointY); | 151 | context.lineTo(pointX, pointY); |
155 | context.closePath(); | 152 | context.closePath(); |
156 | pointX = 24.337; | 153 | pointX = 24.337; |
157 | pointY = 31.962; | 154 | pointY = 31.962; |
158 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 155 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
159 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 156 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
160 | context.moveTo(pointX, pointY); | 157 | context.moveTo(pointX, pointY); |
161 | pointX = 21.899; | 158 | pointX = 21.899; |
162 | pointY = 32.882; | 159 | pointY = 32.882; |
163 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 160 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
164 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 161 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
165 | controlPoint1X = 23.463; | 162 | controlPoint1X = 23.463; |
166 | controlPoint1Y = 31.962; | 163 | controlPoint1Y = 31.962; |
167 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 164 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
168 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 165 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
169 | controlPoint2X = 22.589; | 166 | controlPoint2X = 22.589; |
170 | controlPoint2Y = 32.284; | 167 | controlPoint2Y = 32.284; |
171 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 168 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
172 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 169 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
173 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 170 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
174 | pointX = 20.703; | 171 | pointX = 20.703; |
175 | pointY = 35.458; | 172 | pointY = 35.458; |
176 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 173 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
177 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 174 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
178 | controlPoint1X = 21.163; | 175 | controlPoint1X = 21.163; |
179 | controlPoint1Y = 33.572; | 176 | controlPoint1Y = 33.572; |
180 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 177 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
181 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 178 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
182 | controlPoint2X = 20.703; | 179 | controlPoint2X = 20.703; |
183 | controlPoint2Y = 34.538; | 180 | controlPoint2Y = 34.538; |
184 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 181 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
185 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 182 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
186 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 183 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
187 | pointX = 21.669; | 184 | pointX = 21.669; |
188 | pointY = 38.08; | 185 | pointY = 38.08; |
189 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 186 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
190 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 187 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
191 | controlPoint1X = 20.703; | 188 | controlPoint1X = 20.703; |
192 | controlPoint1Y = 36.47; | 189 | controlPoint1Y = 36.47; |
193 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 190 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
194 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 191 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
195 | controlPoint2X = 20.979; | 192 | controlPoint2X = 20.979; |
196 | controlPoint2Y = 37.344; | 193 | controlPoint2Y = 37.344; |
197 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 194 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
198 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 195 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
199 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 196 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
200 | pointX = 24.015; | 197 | pointX = 24.015; |
201 | pointY = 39.0; | 198 | pointY = 39.0; |
202 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 199 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
203 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 200 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
204 | controlPoint1X = 22.405; | 201 | controlPoint1X = 22.405; |
205 | controlPoint1Y = 38.77; | 202 | controlPoint1Y = 38.77; |
206 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 203 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
207 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 204 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
208 | controlPoint2X = 23.325; | 205 | controlPoint2X = 23.325; |
209 | controlPoint2Y = 39.0; | 206 | controlPoint2Y = 39.0; |
210 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 207 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
211 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 208 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
212 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 209 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
213 | pointX = 26.821; | 210 | pointX = 26.821; |
214 | pointY = 38.034; | 211 | pointY = 38.034; |
215 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 212 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
216 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 213 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js index adab74f..fad5c10 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //info.js | 27 | //info.js |
31 | //i | 28 | //i |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_infoWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_infoWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_infoHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_infoHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_info(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_info(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var color; | 50 | var color; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_infoWidth, kClipperz_PM_UI_Canvas_Marks_infoHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_infoWidth, kClipperz_PM_UI_Canvas_Marks_infoHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 30.253; | 65 | pointX = 30.253; |
69 | pointY = 37.436; | 66 | pointY = 37.436; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 28.505; | 70 | pointX = 28.505; |
74 | pointY = 37.022; | 71 | pointY = 37.022; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 27.677; | 75 | pointX = 27.677; |
79 | pointY = 35.09; | 76 | pointY = 35.09; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | controlPoint1X = 27.953; | 79 | controlPoint1X = 27.953; |
83 | controlPoint1Y = 36.792; | 80 | controlPoint1Y = 36.792; |
84 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 81 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
85 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 82 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
86 | controlPoint2X = 27.677; | 83 | controlPoint2X = 27.677; |
87 | controlPoint2Y = 36.47; | 84 | controlPoint2Y = 36.47; |
88 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 85 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
89 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 86 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
90 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 87 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
91 | pointX = 27.631; | 88 | pointX = 27.631; |
92 | pointY = 27.546; | 89 | pointY = 27.546; |
93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
95 | controlPoint1X = 27.631; | 92 | controlPoint1X = 27.631; |
96 | controlPoint1Y = 32.974; | 93 | controlPoint1Y = 32.974; |
97 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 94 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
98 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 95 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
99 | controlPoint2X = 27.631; | 96 | controlPoint2X = 27.631; |
100 | controlPoint2Y = 29.892; | 97 | controlPoint2Y = 29.892; |
101 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 98 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
102 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 99 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
103 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 100 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
104 | pointX = 27.677; | 101 | pointX = 27.677; |
105 | pointY = 19.726; | 102 | pointY = 19.726; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | controlPoint1X = 27.631; | 105 | controlPoint1X = 27.631; |
109 | controlPoint1Y = 24.97; | 106 | controlPoint1Y = 24.97; |
110 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 107 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
111 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 108 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
112 | controlPoint2X = 27.677; | 109 | controlPoint2X = 27.677; |
113 | controlPoint2Y = 21.612; | 110 | controlPoint2Y = 21.612; |
114 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 111 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
115 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 112 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
116 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 113 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
117 | pointX = 19.535; | 114 | pointX = 19.535; |
118 | pointY = 21.336; | 115 | pointY = 21.336; |
119 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
120 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
121 | controlPoint1X = 25.331; | 118 | controlPoint1X = 25.331; |
122 | controlPoint1Y = 20.692; | 119 | controlPoint1Y = 20.692; |
123 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 120 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
124 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 121 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
125 | controlPoint2X = 20.593; | 122 | controlPoint2X = 20.593; |
126 | controlPoint2Y = 21.336; | 123 | controlPoint2Y = 21.336; |
127 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 124 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
128 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 125 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
129 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 126 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
130 | pointX = 19.443; | 127 | pointX = 19.443; |
131 | pointY = 22.762; | 128 | pointY = 22.762; |
132 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 129 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
133 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 130 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
134 | controlPoint1X = 19.397; | 131 | controlPoint1X = 19.397; |
135 | controlPoint1Y = 21.52; | 132 | controlPoint1Y = 21.52; |
136 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 133 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
137 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 134 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
138 | controlPoint2X = 19.305; | 135 | controlPoint2X = 19.305; |
139 | controlPoint2Y = 22.532; | 136 | controlPoint2Y = 22.532; |
140 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 137 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
141 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 138 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
142 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 139 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
143 | pointX = 21.283; | 140 | pointX = 21.283; |
144 | pointY = 23.82; | 141 | pointY = 23.82; |
145 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 142 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
146 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 143 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
147 | controlPoint1X = 20.639; | 144 | controlPoint1X = 20.639; |
148 | controlPoint1Y = 23.222; | 145 | controlPoint1Y = 23.222; |
149 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 146 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
150 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 147 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
151 | controlPoint2X = 20.961; | 148 | controlPoint2X = 20.961; |
152 | controlPoint2Y = 23.452; | 149 | controlPoint2Y = 23.452; |
153 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 150 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
154 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 151 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
155 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 152 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
156 | pointX = 21.605; | 153 | pointX = 21.605; |
157 | pointY = 24.97; | 154 | pointY = 24.97; |
158 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 155 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
159 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 156 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
160 | controlPoint1X = 21.513; | 157 | controlPoint1X = 21.513; |
161 | controlPoint1Y = 24.05; | 158 | controlPoint1Y = 24.05; |
162 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 159 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
163 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 160 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
164 | controlPoint2X = 21.605; | 161 | controlPoint2X = 21.605; |
165 | controlPoint2Y = 24.602; | 162 | controlPoint2Y = 24.602; |
166 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 163 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
167 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 164 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
168 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 165 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
169 | pointX = 21.651; | 166 | pointX = 21.651; |
170 | pointY = 29.156; | 167 | pointY = 29.156; |
171 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 168 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
172 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 169 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
173 | controlPoint1X = 21.651; | 170 | controlPoint1X = 21.651; |
174 | controlPoint1Y = 25.752; | 171 | controlPoint1Y = 25.752; |
175 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 172 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
176 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 173 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
177 | controlPoint2X = 21.651; | 174 | controlPoint2X = 21.651; |
178 | controlPoint2Y = 27.592; | 175 | controlPoint2Y = 27.592; |
179 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 176 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
180 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 177 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
181 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 178 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
182 | pointX = 21.605; | 179 | pointX = 21.605; |
183 | pointY = 35.228; | 180 | pointY = 35.228; |
184 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 181 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
185 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 182 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
186 | controlPoint1X = 21.651; | 183 | controlPoint1X = 21.651; |
187 | controlPoint1Y = 31.364; | 184 | controlPoint1Y = 31.364; |
188 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 185 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
189 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 186 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
190 | controlPoint2X = 21.651; | 187 | controlPoint2X = 21.651; |
191 | controlPoint2Y = 34.216; | 188 | controlPoint2Y = 34.216; |
192 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 189 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
193 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 190 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
194 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 191 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
195 | pointX = 20.823; | 192 | pointX = 20.823; |
196 | pointY = 37.022; | 193 | pointY = 37.022; |
197 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 194 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
198 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 195 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
199 | controlPoint1X = 21.559; | 196 | controlPoint1X = 21.559; |
200 | controlPoint1Y = 36.332; | 197 | controlPoint1Y = 36.332; |
201 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 198 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
202 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 199 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
203 | controlPoint2X = 21.467; | 200 | controlPoint2X = 21.467; |
204 | controlPoint2Y = 36.838; | 201 | controlPoint2Y = 36.838; |
205 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 202 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
206 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 203 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
207 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 204 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
208 | pointX = 19.121; | 205 | pointX = 19.121; |
209 | pointY = 37.436; | 206 | pointY = 37.436; |
210 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 207 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
211 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 208 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
212 | controlPoint1X = 20.363; | 209 | controlPoint1X = 20.363; |
213 | controlPoint1Y = 37.206; | 210 | controlPoint1Y = 37.206; |
214 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 211 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
215 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 212 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
216 | controlPoint2X = 19.857; | 213 | controlPoint2X = 19.857; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js index 003c4c2..5842828 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //questionMark.js | 27 | //questionMark.js |
31 | //? | 28 | //? |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_questionMarkWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_questionMarkWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_questionMarkHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_questionMarkHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_questionMark(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_questionMark(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var color; | 50 | var color; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 24.118; | 65 | pointX = 24.118; |
69 | pointY = 24.464; | 66 | pointY = 24.464; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 24.854; | 70 | pointX = 24.854; |
74 | pointY = 23.406; | 71 | pointY = 23.406; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 24.118; | 74 | controlPoint1X = 24.118; |
78 | controlPoint1Y = 24.05; | 75 | controlPoint1Y = 24.05; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 24.44; | 78 | controlPoint2X = 24.44; |
82 | controlPoint2Y = 23.636; | 79 | controlPoint2Y = 23.636; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 29.454; | 83 | pointX = 29.454; |
87 | pointY = 20.6; | 84 | pointY = 20.6; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 26.418; | 87 | controlPoint1X = 26.418; |
91 | controlPoint1Y = 22.532; | 88 | controlPoint1Y = 22.532; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 28.534; | 91 | controlPoint2X = 28.534; |
95 | controlPoint2Y = 21.566; | 92 | controlPoint2Y = 21.566; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 30.282; | 96 | pointX = 30.282; |
100 | pointY = 17.794; | 97 | pointY = 17.794; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 29.868; | 100 | controlPoint1X = 29.868; |
104 | controlPoint1Y = 20.232; | 101 | controlPoint1Y = 20.232; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 30.282; | 104 | controlPoint2X = 30.282; |
108 | controlPoint2Y = 19.082; | 105 | controlPoint2Y = 19.082; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 27.2; | 109 | pointX = 27.2; |
113 | pointY = 12.688; | 110 | pointY = 12.688; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 30.282; | 113 | controlPoint1X = 30.282; |
117 | controlPoint1Y = 16.322; | 114 | controlPoint1Y = 16.322; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 29.454; | 117 | controlPoint2X = 29.454; |
121 | controlPoint2Y = 14.344; | 118 | controlPoint2Y = 14.344; |
122 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 119 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
123 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 120 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
124 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 121 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
125 | pointX = 21.312; | 122 | pointX = 21.312; |
126 | pointY = 10.664; | 123 | pointY = 10.664; |
127 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 124 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
128 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 125 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
129 | controlPoint1X = 25.636; | 126 | controlPoint1X = 25.636; |
130 | controlPoint1Y = 11.492; | 127 | controlPoint1Y = 11.492; |
131 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 128 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
132 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 129 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
133 | controlPoint2X = 23.382; | 130 | controlPoint2X = 23.382; |
134 | controlPoint2Y = 10.664; | 131 | controlPoint2Y = 10.664; |
135 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 132 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
136 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 133 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
137 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 134 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
138 | pointX = 19.886; | 135 | pointX = 19.886; |
139 | pointY = 11.124; | 136 | pointY = 11.124; |
140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 137 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 138 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
142 | controlPoint1X = 20.898; | 139 | controlPoint1X = 20.898; |
143 | controlPoint1Y = 10.664; | 140 | controlPoint1Y = 10.664; |
144 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 141 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
145 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 142 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
146 | controlPoint2X = 20.162; | 143 | controlPoint2X = 20.162; |
147 | controlPoint2Y = 10.894; | 144 | controlPoint2Y = 10.894; |
148 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 145 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
149 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 146 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
150 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 147 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
151 | pointX = 18.0; | 148 | pointX = 18.0; |
152 | pointY = 14.666; | 149 | pointY = 14.666; |
153 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 150 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
154 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 151 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
155 | controlPoint1X = 19.104; | 152 | controlPoint1X = 19.104; |
156 | controlPoint1Y = 11.676; | 153 | controlPoint1Y = 11.676; |
157 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 154 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
158 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 155 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
159 | controlPoint2X = 18.0; | 156 | controlPoint2X = 18.0; |
160 | controlPoint2Y = 14.068; | 157 | controlPoint2Y = 14.068; |
161 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 158 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
162 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 159 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
163 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 160 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
164 | pointX = 18.598; | 161 | pointX = 18.598; |
165 | pointY = 15.586; | 162 | pointY = 15.586; |
166 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 163 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
167 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 164 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
168 | controlPoint1X = 18.0; | 165 | controlPoint1X = 18.0; |
169 | controlPoint1Y = 14.896; | 166 | controlPoint1Y = 14.896; |
170 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 167 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
171 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 168 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
172 | controlPoint2X = 18.138; | 169 | controlPoint2X = 18.138; |
173 | controlPoint2Y = 15.494; | 170 | controlPoint2Y = 15.494; |
174 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 171 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
175 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 172 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
176 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 173 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
177 | pointX = 19.794; | 174 | pointX = 19.794; |
178 | pointY = 15.908; | 175 | pointY = 15.908; |
179 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 176 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
180 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 177 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
181 | controlPoint1X = 19.012; | 178 | controlPoint1X = 19.012; |
182 | controlPoint1Y = 15.678; | 179 | controlPoint1Y = 15.678; |
183 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 180 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
184 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 181 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
185 | controlPoint2X = 19.426; | 182 | controlPoint2X = 19.426; |
186 | controlPoint2Y = 15.77; | 183 | controlPoint2Y = 15.77; |
187 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 184 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
188 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 185 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
189 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 186 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
190 | pointX = 25.36; | 187 | pointX = 25.36; |
191 | pointY = 20.002; | 188 | pointY = 20.002; |
192 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 189 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
193 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 190 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
194 | controlPoint1X = 22.508; | 191 | controlPoint1X = 22.508; |
195 | controlPoint1Y = 16.644; | 192 | controlPoint1Y = 16.644; |
196 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 193 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
197 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 194 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
198 | controlPoint2X = 25.36; | 195 | controlPoint2X = 25.36; |
199 | controlPoint2Y = 17.886; | 196 | controlPoint2Y = 17.886; |
200 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 197 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
201 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 198 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
202 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 199 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
203 | pointX = 24.21; | 200 | pointX = 24.21; |
204 | pointY = 21.704; | 201 | pointY = 21.704; |
205 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 202 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
206 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 203 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
207 | controlPoint1X = 25.36; | 204 | controlPoint1X = 25.36; |
208 | controlPoint1Y = 20.738; | 205 | controlPoint1Y = 20.738; |
209 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 206 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
210 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 207 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
211 | controlPoint2X = 25.084; | 208 | controlPoint2X = 25.084; |
212 | controlPoint2Y = 21.198; | 209 | controlPoint2Y = 21.198; |
213 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 210 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
214 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 211 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
215 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 212 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
216 | pointX = 19.058; | 213 | pointX = 19.058; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js index 288e0be..2462d0e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/24/10 | 30 | //Created by Giulio Cesare Solaroli on 3/24/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_RegisterButton_normalWidth = 282.0; | 35 | var kClipperz_PM_UI_Canvas_RegisterButton_normalWidth = 282.0; |
39 | var kClipperz_PM_UI_Canvas_RegisterButton_normalHeight = 93.0; | 36 | var kClipperz_PM_UI_Canvas_RegisterButton_normalHeight = 93.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_RegisterButton_normal(canvas, aBackgroundColor, aDarkBackgroundColor, aLightColor, aDarkColor, aStarColor) | 38 | function Clipperz_PM_UI_Canvas_RegisterButton_normal(canvas, aBackgroundColor, aDarkBackgroundColor, aLightColor, aDarkColor, aStarColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var gradient; | 50 | var gradient; |
54 | var color; | 51 | var color; |
55 | if (window.devicePixelRatio) | 52 | if (window.devicePixelRatio) |
56 | resolution = window.devicePixelRatio; | 53 | resolution = window.devicePixelRatio; |
57 | else | 54 | else |
58 | resolution = 1.0; | 55 | resolution = 1.0; |
59 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 56 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
60 | 57 | ||
61 | context.save(); | 58 | context.save(); |
62 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 59 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
63 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 60 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
64 | 61 | ||
65 | // background | 62 | // background |
66 | 63 | ||
67 | alignStroke = 0.0; | 64 | alignStroke = 0.0; |
68 | context.beginPath(); | 65 | context.beginPath(); |
69 | pointX = 241.0; | 66 | pointX = 241.0; |
70 | pointY = 80.0; | 67 | pointY = 80.0; |
71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 68 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 69 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
73 | context.moveTo(pointX, pointY); | 70 | context.moveTo(pointX, pointY); |
74 | pointX = 274.0; | 71 | pointX = 274.0; |
75 | pointY = 47.0; | 72 | pointY = 47.0; |
76 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
77 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
78 | controlPoint1X = 259.103; | 75 | controlPoint1X = 259.103; |
79 | controlPoint1Y = 80.0; | 76 | controlPoint1Y = 80.0; |
80 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
81 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 78 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
82 | controlPoint2X = 274.0; | 79 | controlPoint2X = 274.0; |
83 | controlPoint2Y = 65.103; | 80 | controlPoint2Y = 65.103; |
84 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
85 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 82 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
86 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 83 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
87 | pointX = 274.0; | 84 | pointX = 274.0; |
88 | pointY = 45.0; | 85 | pointY = 45.0; |
89 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 86 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
90 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 87 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
91 | context.lineTo(pointX, pointY); | 88 | context.lineTo(pointX, pointY); |
92 | pointX = 241.0; | 89 | pointX = 241.0; |
93 | pointY = 12.0; | 90 | pointY = 12.0; |
94 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 91 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
95 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 92 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
96 | controlPoint1X = 274.0; | 93 | controlPoint1X = 274.0; |
97 | controlPoint1Y = 26.897; | 94 | controlPoint1Y = 26.897; |
98 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 95 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
99 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 96 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
100 | controlPoint2X = 259.103; | 97 | controlPoint2X = 259.103; |
101 | controlPoint2Y = 12.0; | 98 | controlPoint2Y = 12.0; |
102 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 99 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
103 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 100 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
104 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 101 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
105 | pointX = 60.0; | 102 | pointX = 60.0; |
106 | pointY = 12.0; | 103 | pointY = 12.0; |
107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 104 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 105 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
109 | context.lineTo(pointX, pointY); | 106 | context.lineTo(pointX, pointY); |
110 | pointX = 27.0; | 107 | pointX = 27.0; |
111 | pointY = 45.0; | 108 | pointY = 45.0; |
112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 109 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 110 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
114 | controlPoint1X = 41.897; | 111 | controlPoint1X = 41.897; |
115 | controlPoint1Y = 12.0; | 112 | controlPoint1Y = 12.0; |
116 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 113 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
117 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 114 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
118 | controlPoint2X = 27.0; | 115 | controlPoint2X = 27.0; |
119 | controlPoint2Y = 26.897; | 116 | controlPoint2Y = 26.897; |
120 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 117 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
121 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 118 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
122 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 119 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
123 | pointX = 27.0; | 120 | pointX = 27.0; |
124 | pointY = 47.0; | 121 | pointY = 47.0; |
125 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 122 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
126 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 123 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
127 | context.lineTo(pointX, pointY); | 124 | context.lineTo(pointX, pointY); |
128 | pointX = 60.0; | 125 | pointX = 60.0; |
129 | pointY = 80.0; | 126 | pointY = 80.0; |
130 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 127 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
131 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 128 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
132 | controlPoint1X = 27.0; | 129 | controlPoint1X = 27.0; |
133 | controlPoint1Y = 65.103; | 130 | controlPoint1Y = 65.103; |
134 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 131 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
135 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 132 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
136 | controlPoint2X = 41.897; | 133 | controlPoint2X = 41.897; |
137 | controlPoint2Y = 80.0; | 134 | controlPoint2Y = 80.0; |
138 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 135 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
139 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 136 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
140 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 137 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
141 | pointX = 241.0; | 138 | pointX = 241.0; |
142 | pointY = 80.0; | 139 | pointY = 80.0; |
143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
145 | context.lineTo(pointX, pointY); | 142 | context.lineTo(pointX, pointY); |
146 | context.closePath(); | 143 | context.closePath(); |
147 | gradient = context.createLinearGradient(150.5, 12.0, 150.5, 80.0); | 144 | gradient = context.createLinearGradient(150.5, 12.0, 150.5, 80.0); |
148 | gradient.addColorStop(0.0, aBackgroundColor); | 145 | gradient.addColorStop(0.0, aBackgroundColor); |
149 | gradient.addColorStop(1.0, aDarkBackgroundColor); | 146 | gradient.addColorStop(1.0, aDarkBackgroundColor); |
150 | context.fillStyle = gradient; | 147 | context.fillStyle = gradient; |
151 | context.fill(); | 148 | context.fill(); |
152 | 149 | ||
153 | // round | 150 | // round |
154 | 151 | ||
155 | alignStroke = 0.0; | 152 | alignStroke = 0.0; |
156 | context.beginPath(); | 153 | context.beginPath(); |
157 | pointX = 44.103; | 154 | pointX = 44.103; |
158 | pointY = 4.014; | 155 | pointY = 4.014; |
159 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 156 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
160 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 157 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
161 | context.moveTo(pointX, pointY); | 158 | context.moveTo(pointX, pointY); |
162 | pointX = 65.629; | 159 | pointX = 65.629; |
163 | pointY = 10.515; | 160 | pointY = 10.515; |
164 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 161 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
165 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 162 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
166 | controlPoint1X = 51.706; | 163 | controlPoint1X = 51.706; |
167 | controlPoint1Y = 4.217; | 164 | controlPoint1Y = 4.217; |
168 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 165 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
169 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 166 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
170 | controlPoint2X = 59.185; | 167 | controlPoint2X = 59.185; |
171 | controlPoint2Y = 6.475; | 168 | controlPoint2Y = 6.475; |
172 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 169 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
173 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 170 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
174 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 171 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
175 | pointX = 78.65; | 172 | pointX = 78.65; |
176 | pointY = 70.918; | 173 | pointY = 70.918; |
177 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 174 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
178 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 175 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
179 | context.lineTo(pointX, pointY); | 176 | context.lineTo(pointX, pointY); |
180 | pointX = 43.0; | 177 | pointX = 43.0; |
181 | pointY = 90.0; | 178 | pointY = 90.0; |
182 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 179 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
183 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 180 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
184 | controlPoint1X = 70.676; | 181 | controlPoint1X = 70.676; |
185 | controlPoint1Y = 82.788; | 182 | controlPoint1Y = 82.788; |
186 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 183 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
187 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 184 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
188 | controlPoint2X = 57.23; | 185 | controlPoint2X = 57.23; |
189 | controlPoint2Y = 89.817; | 186 | controlPoint2Y = 89.817; |
190 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 187 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
191 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 188 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
192 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 189 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
193 | pointX = 0.056; | 190 | pointX = 0.056; |
194 | pointY = 44.801; | 191 | pointY = 44.801; |
195 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 192 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
196 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 193 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
197 | controlPoint1X = 18.834; | 194 | controlPoint1X = 18.834; |
198 | controlPoint1Y = 90.07; | 195 | controlPoint1Y = 90.07; |
199 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 196 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
200 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 197 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
201 | controlPoint2X = -1.18; | 198 | controlPoint2X = -1.18; |
202 | controlPoint2Y = 68.879; | 199 | controlPoint2Y = 68.879; |
203 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 200 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
204 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 201 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
205 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 202 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
206 | pointX = 44.103; | 203 | pointX = 44.103; |
207 | pointY = 4.014; | 204 | pointY = 4.014; |
208 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 205 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
209 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 206 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
210 | controlPoint1X = 1.242; | 207 | controlPoint1X = 1.242; |
211 | controlPoint1Y = 21.708; | 208 | controlPoint1Y = 21.708; |
212 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 209 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
213 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 210 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
214 | controlPoint2X = 21.202; | 211 | controlPoint2X = 21.202; |
215 | controlPoint2Y = 3.72; | 212 | controlPoint2Y = 3.72; |
216 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 213 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js index e70e3b5..cf475c6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js | |||
@@ -1,153 +1,150 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Star_normalWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_Star_normalWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_Star_normalHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_Star_normalHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Star_normal(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Star_normal(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Star_normalWidth, kClipperz_PM_UI_Canvas_Star_normalHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Star_normalWidth, kClipperz_PM_UI_Canvas_Star_normalHeight); |
58 | 55 | ||
59 | // * | 56 | // * |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 8.613; | 60 | pointX = 8.613; |
64 | pointY = 15.583; | 61 | pointY = 15.583; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 18.563; | 65 | pointX = 18.563; |
69 | pointY = 18.821; | 66 | pointY = 18.821; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 18.563; | 70 | pointX = 18.563; |
74 | pointY = 7.347; | 71 | pointY = 7.347; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 26.799; | 75 | pointX = 26.799; |
79 | pointY = 7.347; | 76 | pointY = 7.347; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 26.799; | 80 | pointX = 26.799; |
84 | pointY = 18.821; | 81 | pointY = 18.821; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | pointX = 36.749; | 85 | pointX = 36.749; |
89 | pointY = 15.583; | 86 | pointY = 15.583; |
90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
92 | context.lineTo(pointX, pointY); | 89 | context.lineTo(pointX, pointY); |
93 | pointX = 38.986; | 90 | pointX = 38.986; |
94 | pointY = 22.677; | 91 | pointY = 22.677; |
95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
97 | context.lineTo(pointX, pointY); | 94 | context.lineTo(pointX, pointY); |
98 | pointX = 28.846; | 95 | pointX = 28.846; |
99 | pointY = 25.819; | 96 | pointY = 25.819; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.lineTo(pointX, pointY); | 99 | context.lineTo(pointX, pointY); |
103 | pointX = 35.463; | 100 | pointX = 35.463; |
104 | pointY = 35.293; | 101 | pointY = 35.293; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | pointX = 29.369; | 105 | pointX = 29.369; |
109 | pointY = 39.625; | 106 | pointY = 39.625; |
110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
112 | context.lineTo(pointX, pointY); | 109 | context.lineTo(pointX, pointY); |
113 | pointX = 22.752; | 110 | pointX = 22.752; |
114 | pointY = 30.675; | 111 | pointY = 30.675; |
115 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
116 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
117 | context.lineTo(pointX, pointY); | 114 | context.lineTo(pointX, pointY); |
118 | pointX = 15.944; | 115 | pointX = 15.944; |
119 | pointY = 39.625; | 116 | pointY = 39.625; |
120 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 117 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
121 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 118 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
122 | context.lineTo(pointX, pointY); | 119 | context.lineTo(pointX, pointY); |
123 | pointX = 9.85; | 120 | pointX = 9.85; |
124 | pointY = 35.293; | 121 | pointY = 35.293; |
125 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 122 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
126 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 123 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
127 | context.lineTo(pointX, pointY); | 124 | context.lineTo(pointX, pointY); |
128 | pointX = 16.515; | 125 | pointX = 16.515; |
129 | pointY = 25.819; | 126 | pointY = 25.819; |
130 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 127 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
131 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 128 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
132 | context.lineTo(pointX, pointY); | 129 | context.lineTo(pointX, pointY); |
133 | pointX = 6.375; | 130 | pointX = 6.375; |
134 | pointY = 22.677; | 131 | pointY = 22.677; |
135 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 132 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
136 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 133 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
137 | context.lineTo(pointX, pointY); | 134 | context.lineTo(pointX, pointY); |
138 | pointX = 8.613; | 135 | pointX = 8.613; |
139 | pointY = 15.583; | 136 | pointY = 15.583; |
140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 137 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 138 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
142 | context.lineTo(pointX, pointY); | 139 | context.lineTo(pointX, pointY); |
143 | context.closePath(); | 140 | context.closePath(); |
144 | pointX = 42.081; | 141 | pointX = 42.081; |
145 | pointY = 77.949; | 142 | pointY = 77.949; |
146 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
147 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
148 | context.moveTo(pointX, pointY); | 145 | context.moveTo(pointX, pointY); |
149 | context.fillStyle = aColor; | 146 | context.fillStyle = aColor; |
150 | context.fill(); | 147 | context.fill(); |
151 | 148 | ||
152 | context.restore(); | 149 | context.restore(); |
153 | } | 150 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js index 216fd24..cd7ed90 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js | |||
@@ -1,156 +1,153 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //close.js | 27 | //close.js |
31 | //close | 28 | //close |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/14/10 | 30 | //Created by Giulio Cesare Solaroli on 3/14/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Tips_closeWidth = 310.0; | 35 | var kClipperz_PM_UI_Canvas_Tips_closeWidth = 310.0; |
39 | var kClipperz_PM_UI_Canvas_Tips_closeHeight = 6.0; | 36 | var kClipperz_PM_UI_Canvas_Tips_closeHeight = 6.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Tips_close(canvas, aColor, aBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Tips_close(canvas, aColor, aBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_closeWidth, kClipperz_PM_UI_Canvas_Tips_closeHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_closeWidth, kClipperz_PM_UI_Canvas_Tips_closeHeight); |
58 | 55 | ||
59 | // background | 56 | // background |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 310.0; | 60 | pointX = 310.0; |
64 | pointY = 6.0; | 61 | pointY = 6.0; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 310.0; | 65 | pointX = 310.0; |
69 | pointY = 0.0; | 66 | pointY = 0.0; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 0.0; | 70 | pointX = 0.0; |
74 | pointY = 0.0; | 71 | pointY = 0.0; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 0.0; | 75 | pointX = 0.0; |
79 | pointY = 6.0; | 76 | pointY = 6.0; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 310.0; | 80 | pointX = 310.0; |
84 | pointY = 6.0; | 81 | pointY = 6.0; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | context.closePath(); | 85 | context.closePath(); |
89 | context.fillStyle = aBackgroundColor; | 86 | context.fillStyle = aBackgroundColor; |
90 | context.fill(); | 87 | context.fill(); |
91 | 88 | ||
92 | // grid | 89 | // grid |
93 | 90 | ||
94 | // background | 91 | // background |
95 | 92 | ||
96 | alignStroke = 0.0; | 93 | alignStroke = 0.0; |
97 | context.beginPath(); | 94 | context.beginPath(); |
98 | pointX = 310.0; | 95 | pointX = 310.0; |
99 | pointY = 6.0; | 96 | pointY = 6.0; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.moveTo(pointX, pointY); | 99 | context.moveTo(pointX, pointY); |
103 | pointX = 310.0; | 100 | pointX = 310.0; |
104 | pointY = 0.0; | 101 | pointY = 0.0; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | pointX = 0.0; | 105 | pointX = 0.0; |
109 | pointY = 0.0; | 106 | pointY = 0.0; |
110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
112 | context.lineTo(pointX, pointY); | 109 | context.lineTo(pointX, pointY); |
113 | pointX = 0.0; | 110 | pointX = 0.0; |
114 | pointY = 6.0; | 111 | pointY = 6.0; |
115 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
116 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
117 | context.lineTo(pointX, pointY); | 114 | context.lineTo(pointX, pointY); |
118 | pointX = 310.0; | 115 | pointX = 310.0; |
119 | pointY = 6.0; | 116 | pointY = 6.0; |
120 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 117 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
121 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 118 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
122 | context.lineTo(pointX, pointY); | 119 | context.lineTo(pointX, pointY); |
123 | context.closePath(); | 120 | context.closePath(); |
124 | context.fillStyle = aBackgroundColor; | 121 | context.fillStyle = aBackgroundColor; |
125 | context.fill(); | 122 | context.fill(); |
126 | 123 | ||
127 | // toggle | 124 | // toggle |
128 | 125 | ||
129 | alignStroke = 0.0; | 126 | alignStroke = 0.0; |
130 | context.beginPath(); | 127 | context.beginPath(); |
131 | pointX = 149.0; | 128 | pointX = 149.0; |
132 | pointY = 6.0; | 129 | pointY = 6.0; |
133 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 130 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
134 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 131 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
135 | context.moveTo(pointX, pointY); | 132 | context.moveTo(pointX, pointY); |
136 | pointX = 161.0; | 133 | pointX = 161.0; |
137 | pointY = 6.0; | 134 | pointY = 6.0; |
138 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 135 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
139 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 136 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
140 | context.lineTo(pointX, pointY); | 137 | context.lineTo(pointX, pointY); |
141 | pointX = 155.0; | 138 | pointX = 155.0; |
142 | pointY = 0.0; | 139 | pointY = 0.0; |
143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
145 | context.lineTo(pointX, pointY); | 142 | context.lineTo(pointX, pointY); |
146 | pointX = 149.0; | 143 | pointX = 149.0; |
147 | pointY = 6.0; | 144 | pointY = 6.0; |
148 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 145 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
149 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 146 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
150 | context.lineTo(pointX, pointY); | 147 | context.lineTo(pointX, pointY); |
151 | context.closePath(); | 148 | context.closePath(); |
152 | context.fillStyle = aColor; | 149 | context.fillStyle = aColor; |
153 | context.fill(); | 150 | context.fill(); |
154 | 151 | ||
155 | context.restore(); | 152 | context.restore(); |
156 | } | 153 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js index f1bdaa9..30c1c69 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js | |||
@@ -1,163 +1,160 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //open.js | 27 | //open.js |
31 | //open | 28 | //open |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/14/10 | 30 | //Created by Giulio Cesare Solaroli on 3/14/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Tips_openWidth = 310.0; | 35 | var kClipperz_PM_UI_Canvas_Tips_openWidth = 310.0; |
39 | var kClipperz_PM_UI_Canvas_Tips_openHeight = 6.0; | 36 | var kClipperz_PM_UI_Canvas_Tips_openHeight = 6.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Tips_open(canvas, aColor, aBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Tips_open(canvas, aColor, aBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var color; | 46 | var color; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_openWidth, kClipperz_PM_UI_Canvas_Tips_openHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_openWidth, kClipperz_PM_UI_Canvas_Tips_openHeight); |
59 | 56 | ||
60 | // background | 57 | // background |
61 | 58 | ||
62 | alignStroke = 0.0; | 59 | alignStroke = 0.0; |
63 | context.beginPath(); | 60 | context.beginPath(); |
64 | pointX = 310.0; | 61 | pointX = 310.0; |
65 | pointY = 6.0; | 62 | pointY = 6.0; |
66 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 63 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
67 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 64 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
68 | context.moveTo(pointX, pointY); | 65 | context.moveTo(pointX, pointY); |
69 | pointX = 310.0; | 66 | pointX = 310.0; |
70 | pointY = 0.0; | 67 | pointY = 0.0; |
71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 68 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 69 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
73 | context.lineTo(pointX, pointY); | 70 | context.lineTo(pointX, pointY); |
74 | pointX = 0.0; | 71 | pointX = 0.0; |
75 | pointY = 0.0; | 72 | pointY = 0.0; |
76 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
77 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
78 | context.lineTo(pointX, pointY); | 75 | context.lineTo(pointX, pointY); |
79 | pointX = 0.0; | 76 | pointX = 0.0; |
80 | pointY = 6.0; | 77 | pointY = 6.0; |
81 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
82 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
83 | context.lineTo(pointX, pointY); | 80 | context.lineTo(pointX, pointY); |
84 | pointX = 310.0; | 81 | pointX = 310.0; |
85 | pointY = 6.0; | 82 | pointY = 6.0; |
86 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 83 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
87 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 84 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
88 | context.lineTo(pointX, pointY); | 85 | context.lineTo(pointX, pointY); |
89 | context.closePath(); | 86 | context.closePath(); |
90 | context.fillStyle = aBackgroundColor; | 87 | context.fillStyle = aBackgroundColor; |
91 | context.fill(); | 88 | context.fill(); |
92 | 89 | ||
93 | // grid | 90 | // grid |
94 | 91 | ||
95 | // background | 92 | // background |
96 | 93 | ||
97 | alignStroke = 0.0; | 94 | alignStroke = 0.0; |
98 | context.beginPath(); | 95 | context.beginPath(); |
99 | pointX = 310.0; | 96 | pointX = 310.0; |
100 | pointY = 6.0; | 97 | pointY = 6.0; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | context.moveTo(pointX, pointY); | 100 | context.moveTo(pointX, pointY); |
104 | pointX = 310.0; | 101 | pointX = 310.0; |
105 | pointY = 0.0; | 102 | pointY = 0.0; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | context.lineTo(pointX, pointY); | 105 | context.lineTo(pointX, pointY); |
109 | pointX = 0.0; | 106 | pointX = 0.0; |
110 | pointY = 0.0; | 107 | pointY = 0.0; |
111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
113 | context.lineTo(pointX, pointY); | 110 | context.lineTo(pointX, pointY); |
114 | pointX = 0.0; | 111 | pointX = 0.0; |
115 | pointY = 6.0; | 112 | pointY = 6.0; |
116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
118 | context.lineTo(pointX, pointY); | 115 | context.lineTo(pointX, pointY); |
119 | pointX = 310.0; | 116 | pointX = 310.0; |
120 | pointY = 6.0; | 117 | pointY = 6.0; |
121 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 118 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
122 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 119 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
123 | context.lineTo(pointX, pointY); | 120 | context.lineTo(pointX, pointY); |
124 | context.closePath(); | 121 | context.closePath(); |
125 | context.fillStyle = aBackgroundColor; | 122 | context.fillStyle = aBackgroundColor; |
126 | context.fill(); | 123 | context.fill(); |
127 | 124 | ||
128 | // Layer 1 | 125 | // Layer 1 |
129 | 126 | ||
130 | alignStroke = 0.0; | 127 | alignStroke = 0.0; |
131 | context.save(); | 128 | context.save(); |
132 | context.translate(155.0, 3.0); | 129 | context.translate(155.0, 3.0); |
133 | context.rotate(-3.142); | 130 | context.rotate(-3.142); |
134 | context.translate(-155.0, -3.0); | 131 | context.translate(-155.0, -3.0); |
135 | context.beginPath(); | 132 | context.beginPath(); |
136 | pointX = 149.0; | 133 | pointX = 149.0; |
137 | pointY = 6.0; | 134 | pointY = 6.0; |
138 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 135 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
139 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 136 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
140 | context.moveTo(pointX, pointY); | 137 | context.moveTo(pointX, pointY); |
141 | pointX = 161.0; | 138 | pointX = 161.0; |
142 | pointY = 6.0; | 139 | pointY = 6.0; |
143 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 140 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
144 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 141 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
145 | context.lineTo(pointX, pointY); | 142 | context.lineTo(pointX, pointY); |
146 | pointX = 155.0; | 143 | pointX = 155.0; |
147 | pointY = 0.0; | 144 | pointY = 0.0; |
148 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 145 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
149 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 146 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
150 | context.lineTo(pointX, pointY); | 147 | context.lineTo(pointX, pointY); |
151 | pointX = 149.0; | 148 | pointX = 149.0; |
152 | pointY = 6.0; | 149 | pointY = 6.0; |
153 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 150 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
154 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 151 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
155 | context.lineTo(pointX, pointY); | 152 | context.lineTo(pointX, pointY); |
156 | context.closePath(); | 153 | context.closePath(); |
157 | color = "#FFFFFF"; | 154 | color = "#FFFFFF"; |
158 | context.fillStyle = color; | 155 | context.fillStyle = color; |
159 | context.fill(); | 156 | context.fill(); |
160 | context.restore(); | 157 | context.restore(); |
161 | 158 | ||
162 | context.restore(); | 159 | context.restore(); |
163 | } | 160 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js index 26f2fc4..2a03fdf 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | var _Clipperz_PM_Components_base_id_ = 0; | 30 | var _Clipperz_PM_Components_base_id_ = 0; |
34 | 31 | ||
35 | //############################################################################# | 32 | //############################################################################# |
36 | 33 | ||
37 | Clipperz.PM.UI.Common.Components.BaseComponent = function(args) { | 34 | Clipperz.PM.UI.Common.Components.BaseComponent = function(args) { |
38 | args = args || {}; | 35 | args = args || {}; |
39 | Clipperz.PM.UI.Common.Components.BaseComponent.superclass.constructor.call(this, args); | 36 | Clipperz.PM.UI.Common.Components.BaseComponent.superclass.constructor.call(this, args); |
40 | 37 | ||
41 | this._element = args.element || null; | 38 | this._element = args.element || null; |
42 | this._ids = {}; | 39 | this._ids = {}; |
43 | 40 | ||
44 | this._slots = {}; | 41 | this._slots = {}; |
45 | this._slotComponents = {}; | 42 | this._slotComponents = {}; |
46 | 43 | ||
47 | this._components = {}; | 44 | this._components = {}; |
48 | 45 | ||
49 | this._cachedSlots = {}; | 46 | this._cachedSlots = {}; |
50 | 47 | ||
51 | this._isModal = false; | 48 | this._isModal = false; |
52 | 49 | ||
53 | this._isActive = false; | 50 | this._isActive = false; |
54 | this._elementUsedToEnterModalState; | 51 | this._elementUsedToEnterModalState; |
55 | 52 | ||
56 | this._isFullyRendered = false; | 53 | this._isFullyRendered = false; |
57 | this._renderingWaitingQueue = []; | 54 | this._renderingWaitingQueue = []; |
58 | 55 | ||
59 | //this._slots = { | 56 | //this._slots = { |
60 | // 'header':'header', | 57 | // 'header':'header', |
61 | // 'body': 'body', | 58 | // 'body': 'body', |
62 | // 'footer':'footer' | 59 | // 'footer':'footer' |
63 | //}; | 60 | //}; |
64 | 61 | ||
65 | return this; | 62 | return this; |
66 | } | 63 | } |
67 | 64 | ||
68 | //============================================================================= | 65 | //============================================================================= |
69 | 66 | ||
70 | //TODO get back to MochiKit.Base.update as we are not extending anything | 67 | //TODO get back to MochiKit.Base.update as we are not extending anything |
71 | //MochiKit.Base.update(Clipperz.PM.UI.Common.Components.BaseComponent.prototype, { | 68 | //MochiKit.Base.update(Clipperz.PM.UI.Common.Components.BaseComponent.prototype, { |
72 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Component*/ Object, { | 69 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Component*/ Object, { |
73 | 70 | ||
74 | 'isClipperzPMComponent': true, | 71 | 'isClipperzPMComponent': true, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'toString': function () { | 75 | 'toString': function () { |
79 | return "Clipperz.PM.UI.Common.Components.BaseComponent component"; | 76 | return "Clipperz.PM.UI.Common.Components.BaseComponent component"; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | 'componentId': function () { | 79 | 'componentId': function () { |
83 | return this.getId('_id_'); | 80 | return this.getId('_id_'); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //------------------------------------------------------------------------- | 83 | //------------------------------------------------------------------------- |
87 | /* | 84 | /* |
88 | 'slots': function() { | 85 | 'slots': function() { |
89 | return this._slots; | 86 | return this._slots; |
90 | }, | 87 | }, |
91 | */ | 88 | */ |
92 | 'slotComponents': function() { | 89 | 'slotComponents': function() { |
93 | return this._slotComponents; | 90 | return this._slotComponents; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //------------------------------------------------------------------------- | 93 | //------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'components': function () { | 95 | 'components': function () { |
99 | return this._components; | 96 | return this._components; |
100 | }, | 97 | }, |
101 | 98 | ||
102 | 'addComponent': function (aComponent) { | 99 | 'addComponent': function (aComponent) { |
103 | this.components()[aComponent.componentId()] = aComponent; | 100 | this.components()[aComponent.componentId()] = aComponent; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'removeComponent': function (aComponent) { | 103 | 'removeComponent': function (aComponent) { |
107 | var componentId; | 104 | var componentId; |
108 | 105 | ||
109 | componentId = aComponent.componentId(); | 106 | componentId = aComponent.componentId(); |
110 | this.components()[componentId].remove(); | 107 | this.components()[componentId].remove(); |
111 | delete this.components()[componentId]; | 108 | delete this.components()[componentId]; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //------------------------------------------------------------------------- | 111 | //------------------------------------------------------------------------- |
115 | /* | 112 | /* |
116 | 'domHelper': function() { | 113 | 'domHelper': function() { |
117 | return Clipperz.YUI.DomHelper; | 114 | return Clipperz.YUI.DomHelper; |
118 | }, | 115 | }, |
119 | */ | 116 | */ |
120 | //------------------------------------------------------------------------- | 117 | //------------------------------------------------------------------------- |
121 | /* | 118 | /* |
122 | 'domHelperAppend': function(aValue) { | 119 | 'domHelperAppend': function(aValue) { |
123 | Clipperz.YUI.DomHelper.append(this.element().dom, aValue); | 120 | Clipperz.YUI.DomHelper.append(this.element().dom, aValue); |
124 | }, | 121 | }, |
125 | */ | 122 | */ |
126 | //------------------------------------------------------------------------- | 123 | //------------------------------------------------------------------------- |
127 | 124 | ||
128 | 'element': function() { | 125 | 'element': function() { |
129 | //MochiKit.Logging.logDebug(">>> BaseComponent.element"); | 126 | //MochiKit.Logging.logDebug(">>> BaseComponent.element"); |
130 | return MochiKit.DOM.getElement(this._element); | 127 | return MochiKit.DOM.getElement(this._element); |
131 | }, | 128 | }, |
132 | 129 | ||
133 | 'setElement': function(aNode) { | 130 | 'setElement': function(aNode) { |
134 | this._element = aNode; | 131 | this._element = aNode; |
135 | }, | 132 | }, |
136 | 133 | ||
137 | //----------------------------------------------------- | 134 | //----------------------------------------------------- |
138 | 135 | ||
139 | 'displayElement': function() { | 136 | 'displayElement': function() { |
140 | return this.element(); | 137 | return this.element(); |
141 | }, | 138 | }, |
142 | 139 | ||
143 | //------------------------------------------------------------------------- | 140 | //------------------------------------------------------------------------- |
144 | 141 | ||
145 | 'renderInNode': function(aDomNode) { | 142 | 'renderInNode': function(aDomNode) { |
146 | this.setElement(aDomNode); | 143 | this.setElement(aDomNode); |
147 | this.render(); | 144 | this.render(); |
148 | }, | 145 | }, |
149 | 146 | ||
150 | 'render': function() { | 147 | 'render': function() { |
151 | this.clear(); | 148 | this.clear(); |
152 | this.renderSelf(); | 149 | this.renderSelf(); |
153 | this.renderComponents(); | 150 | this.renderComponents(); |
154 | if (this.shouldShowTranslationHints()) { | 151 | if (this.shouldShowTranslationHints()) { |
155 | this.renderTranslationHints(); | 152 | this.renderTranslationHints(); |
156 | } | 153 | } |
157 | if (this.shouldShowElementWhileRendering()) { | 154 | if (this.shouldShowElementWhileRendering()) { |
158 | MochiKit.Style.showElement(this.displayElement()); | 155 | MochiKit.Style.showElement(this.displayElement()); |
159 | }; | 156 | }; |
160 | 157 | ||
161 | this._isFullyRendered = true; | 158 | this._isFullyRendered = true; |
162 | 159 | ||
163 | MochiKit.Iter.forEach(this.renderingWaitingQueue(), MochiKit.Base.methodcaller('callback')); | 160 | MochiKit.Iter.forEach(this.renderingWaitingQueue(), MochiKit.Base.methodcaller('callback')); |
164 | this.resetRenderingWaitingQueue(); | 161 | this.resetRenderingWaitingQueue(); |
165 | }, | 162 | }, |
166 | 163 | ||
167 | 'renderSelf': function() { | 164 | 'renderSelf': function() { |
168 | throw Clipperz.Base.exception.AbstractMethod; | 165 | throw Clipperz.Base.exception.AbstractMethod; |
169 | }, | 166 | }, |
170 | 167 | ||
171 | 'renderComponents': function() { | 168 | 'renderComponents': function() { |
172 | varslotName; | 169 | varslotName; |
173 | 170 | ||
174 | for (slotName in this.slotComponents()) { | 171 | for (slotName in this.slotComponents()) { |
175 | this.slotComponents()[slotName].renderInNode(this.elementForSlotNamed(slotName)); | 172 | this.slotComponents()[slotName].renderInNode(this.elementForSlotNamed(slotName)); |
176 | } | 173 | } |
177 | }, | 174 | }, |
178 | 175 | ||
179 | //......................................................................... | 176 | //......................................................................... |
180 | 177 | ||
181 | 'isFullyRendered': function () { | 178 | 'isFullyRendered': function () { |
182 | return this._isFullyRendered; | 179 | return this._isFullyRendered; |
183 | }, | 180 | }, |
184 | 181 | ||
185 | //......................................................................... | 182 | //......................................................................... |
186 | 183 | ||
187 | 'renderingWaitingQueue': function () { | 184 | 'renderingWaitingQueue': function () { |
188 | return this._renderingWaitingQueue; | 185 | return this._renderingWaitingQueue; |
189 | }, | 186 | }, |
190 | 187 | ||
191 | 'resetRenderingWaitingQueue': function () { | 188 | 'resetRenderingWaitingQueue': function () { |
192 | this._renderingWaitingQueue = []; | 189 | this._renderingWaitingQueue = []; |
193 | }, | 190 | }, |
194 | 191 | ||
195 | //......................................................................... | 192 | //......................................................................... |
196 | 193 | ||
197 | 'waitUntilFullyRendered': function () { | 194 | 'waitUntilFullyRendered': function () { |
198 | var deferredResult; | 195 | var deferredResult; |
199 | 196 | ||
200 | if (this.isFullyRendered() == true) { | 197 | if (this.isFullyRendered() == true) { |
201 | deferredResult = MochiKit.Async.succeed | 198 | deferredResult = MochiKit.Async.succeed |
202 | } else { | 199 | } else { |
203 | deferredResult = new Clipperz.Async.Deferred("BaseComponent.waitUntilFullyRendered", {trace:false}); | 200 | deferredResult = new Clipperz.Async.Deferred("BaseComponent.waitUntilFullyRendered", {trace:false}); |
204 | this.renderingWaitingQueue().push(deferredResult); | 201 | this.renderingWaitingQueue().push(deferredResult); |
205 | } | 202 | } |
206 | 203 | ||
207 | return deferredResult; | 204 | return deferredResult; |
208 | }, | 205 | }, |
209 | 206 | ||
210 | //----------------------------------------------------- | 207 | //----------------------------------------------------- |
211 | 208 | ||
212 | 'renderTranslationHints': function () { | 209 | 'renderTranslationHints': function () { |
213 | vartranslatableItems; | 210 | vartranslatableItems; |
214 | 211 | ||
215 | translatableItems = MochiKit.Selector.findChildElements(this.displayElement(), ['[stringID]']); | 212 | translatableItems = MochiKit.Selector.findChildElements(this.displayElement(), ['[stringID]']); |
216 | MochiKit.Iter.forEach(translatableItems, MochiKit.Base.method(this, 'enhanceTranslatableElement')) | 213 | MochiKit.Iter.forEach(translatableItems, MochiKit.Base.method(this, 'enhanceTranslatableElement')) |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js index b2761ea..716d851 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js | |||
@@ -1,108 +1,105 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.Button = function(args) { | 28 | Clipperz.PM.UI.Common.Components.Button = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.Button.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.Button.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._isDefault = args.isDefault|| false; | 35 | this._isDefault = args.isDefault|| false; |
39 | 36 | ||
40 | this.render(); | 37 | this.render(); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.Button component"; | 49 | return "Clipperz.PM.UI.Common.Components.Button component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'text': function () { | 54 | 'text': function () { |
58 | return this._text; | 55 | return this._text; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'isDefault': function () { | 58 | 'isDefault': function () { |
62 | return this._isDefault; | 59 | return this._isDefault; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'renderSelf': function () { | 64 | 'renderSelf': function () { |
68 | this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[ | 65 | this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[ |
69 | {tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[ | 66 | {tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[ |
70 | {tag:'div', id:this.getId('body'), cls:'button_body', children:[ | 67 | {tag:'div', id:this.getId('body'), cls:'button_body', children:[ |
71 | {tag:'span', html:this.text()} | 68 | {tag:'span', html:this.text()} |
72 | ]}, | 69 | ]}, |
73 | {tag:'div', id:this.getId('footer'), cls:'button_footer'} | 70 | {tag:'div', id:this.getId('footer'), cls:'button_footer'} |
74 | ]} | 71 | ]} |
75 | ]}); | 72 | ]}); |
76 | 73 | ||
77 | if (this.isDefault()) { | 74 | if (this.isDefault()) { |
78 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default'); | 75 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default'); |
79 | } | 76 | } |
80 | 77 | ||
81 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter',this, 'handleOnMouseEnter'); | 78 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter',this, 'handleOnMouseEnter'); |
82 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave',this, 'handleOnMouseLeave'); | 79 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave',this, 'handleOnMouseLeave'); |
83 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown',this, 'handleOnMouseDown'); | 80 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown',this, 'handleOnMouseDown'); |
84 | MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick'); | 81 | MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick'); |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'handleOnMouseEnter': function (anEvent) { | 86 | 'handleOnMouseEnter': function (anEvent) { |
90 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover'); | 87 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'handleOnMouseLeave': function (anEvent) { | 90 | 'handleOnMouseLeave': function (anEvent) { |
94 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover'); | 91 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover'); |
95 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked'); | 92 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked'); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'handleOnMouseDown': function (anEvent) { | 95 | 'handleOnMouseDown': function (anEvent) { |
99 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked'); | 96 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked'); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | 'handleOnClick': function (anEvent) { | 99 | 'handleOnClick': function (anEvent) { |
103 | MochiKit.Signal.signal(this, 'onclick', anEvent); | 100 | MochiKit.Signal.signal(this, 'onclick', anEvent); |
104 | }, | 101 | }, |
105 | 102 | ||
106 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
107 | __syntaxFix__: "syntax fix" | 104 | __syntaxFix__: "syntax fix" |
108 | }); | 105 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js index 0c6e221..7f56c1e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js | |||
@@ -1,64 +1,61 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.ComponentSlot = function(aComponent, aSlotName) { | 31 | Clipperz.PM.UI.Common.Components.ComponentSlot = function(aComponent, aSlotName) { |
35 | this._component = aComponent; | 32 | this._component = aComponent; |
36 | this._slotName = aSlotName; | 33 | this._slotName = aSlotName; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ComponentSlot, Object, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ComponentSlot, Object, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'slotName': function() { | 44 | 'slotName': function() { |
48 | return this._slotName; | 45 | return this._slotName; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | 'component': function() { | 48 | 'component': function() { |
52 | return this._component; | 49 | return this._component; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'setContent': function(aComponent) { | 54 | 'setContent': function(aComponent) { |
58 | this.component().setComponentForSlotNamed(aComponent, this.slotName()); | 55 | this.component().setComponentForSlotNamed(aComponent, this.slotName()); |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | __syntaxFix__: "syntax fix" | 59 | __syntaxFix__: "syntax fix" |
63 | 60 | ||
64 | }); | 61 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js index 4735f5c..2db2489 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js | |||
@@ -1,91 +1,88 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) { | 28 | Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.FaviconComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.FaviconComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this.render(); | 33 | this.render(); |
37 | this.setSrc(args.src); | 34 | this.setSrc(args.src); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.FaviconComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.FaviconComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Common.Components.FaviconComponent component"; | 46 | return "Clipperz.PM.UI.Common.Components.FaviconComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'src': function () { | 51 | 'src': function () { |
55 | return this.element().src; | 52 | return this.element().src; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'setSrc': function (aValue) { | 55 | 'setSrc': function (aValue) { |
59 | this.element().src = (aValue || Clipperz.PM.Strings.getValue('defaultFaviconUrl')); | 56 | this.element().src = (aValue || Clipperz.PM.Strings.getValue('defaultFaviconUrl')); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'clear': function () {}, | 61 | 'clear': function () {}, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'renderSelf': function () { | 65 | 'renderSelf': function () { |
69 | MochiKit.Signal.connect(this.element(), 'onerror',this, 'setDefaultFavicon'); | 66 | MochiKit.Signal.connect(this.element(), 'onerror',this, 'setDefaultFavicon'); |
70 | MochiKit.Signal.connect(this.element(), 'onabort',this, 'setDefaultFavicon'); | 67 | MochiKit.Signal.connect(this.element(), 'onabort',this, 'setDefaultFavicon'); |
71 | MochiKit.Signal.connect(this.element(), 'onload',this, 'handleOnLoad'); | 68 | MochiKit.Signal.connect(this.element(), 'onload',this, 'handleOnLoad'); |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //------------------------------------------------------------------------- | 71 | //------------------------------------------------------------------------- |
75 | 72 | ||
76 | 'setDefaultFavicon': function (anEvent) { | 73 | 'setDefaultFavicon': function (anEvent) { |
77 | MochiKit.Signal.disconnectAll(anEvent.src()); | 74 | MochiKit.Signal.disconnectAll(anEvent.src()); |
78 | this.setSrc(null); | 75 | this.setSrc(null); |
79 | }, | 76 | }, |
80 | 77 | ||
81 | 'handleOnLoad': function (anEvent) { | 78 | 'handleOnLoad': function (anEvent) { |
82 | MochiKit.Signal.disconnectAll(anEvent.src()); | 79 | MochiKit.Signal.disconnectAll(anEvent.src()); |
83 | //console.log("HANDLE ON LOAD", anEvent, anEvent.src().src); | 80 | //console.log("HANDLE ON LOAD", anEvent, anEvent.src().src); |
84 | if (anEvent.src().complete == false) { | 81 | if (anEvent.src().complete == false) { |
85 | this.setSrc(null); | 82 | this.setSrc(null); |
86 | } | 83 | } |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | __syntaxFix__: "syntax fix" | 87 | __syntaxFix__: "syntax fix" |
91 | }); | 88 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js index 275bbed..2788b79 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js | |||
@@ -1,164 +1,161 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) { | 28 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | // this._openFromElement = args.openFromElement || null; | 33 | // this._openFromElement = args.openFromElement || null; |
37 | this._onOkCloseToElement = args.onOkCloseToElement || null; | 34 | this._onOkCloseToElement = args.onOkCloseToElement || null; |
38 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; | 35 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; |
39 | 36 | ||
40 | this._canCancelWhileProcessing= ((typeof(args.canCancelWhileProcessing) == 'undefined') ? true : args.canCancelWhileProcessing); | 37 | this._canCancelWhileProcessing= ((typeof(args.canCancelWhileProcessing) == 'undefined') ? true : args.canCancelWhileProcessing); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar component"; | 49 | return "Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | /* | 53 | /* |
57 | 'openFromElement': function () { | 54 | 'openFromElement': function () { |
58 | return this._openFromElement; | 55 | return this._openFromElement; |
59 | }, | 56 | }, |
60 | */ | 57 | */ |
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'onOkCloseToElement': function () { | 60 | 'onOkCloseToElement': function () { |
64 | return this._onOkCloseToElement; | 61 | return this._onOkCloseToElement; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'setOnOkCloseToElement': function (anElement) { | 64 | 'setOnOkCloseToElement': function (anElement) { |
68 | this._onOkCloseToElement = anElement; | 65 | this._onOkCloseToElement = anElement; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'onCancelCloseToElement': function () { | 70 | 'onCancelCloseToElement': function () { |
74 | return this._onCancelCloseToElement; | 71 | return this._onCancelCloseToElement; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | 'setOnCancelCloseToElement': function (anElement) { | 74 | 'setOnCancelCloseToElement': function (anElement) { |
78 | this._onCancelCloseToElement = anElement; | 75 | this._onCancelCloseToElement = anElement; |
79 | }, | 76 | }, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'canCancelWhileProcessing': function () { | 80 | 'canCancelWhileProcessing': function () { |
84 | return this._canCancelWhileProcessing; | 81 | return this._canCancelWhileProcessing; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'deferredShowModal': function (someArgs, aResult) { | 86 | 'deferredShowModal': function (someArgs, aResult) { |
90 | if (someArgs['onOkCloseToElement'] != null) { | 87 | if (someArgs['onOkCloseToElement'] != null) { |
91 | this.setOnOkCloseToElement(someArgs['onOkCloseToElement']); | 88 | this.setOnOkCloseToElement(someArgs['onOkCloseToElement']); |
92 | } | 89 | } |
93 | 90 | ||
94 | if (someArgs['onCancelCloseToElement'] != null) { | 91 | if (someArgs['onCancelCloseToElement'] != null) { |
95 | this.setOnCancelCloseToElement(someArgs['onCancelCloseToElement']); | 92 | this.setOnCancelCloseToElement(someArgs['onCancelCloseToElement']); |
96 | } | 93 | } |
97 | 94 | ||
98 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.deferredShowModal.apply(this, arguments); | 95 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.deferredShowModal.apply(this, arguments); |
99 | return this.deferred(); | 96 | return this.deferred(); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //------------------------------------------------------------------------- | 99 | //------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'showProgressBar': function () { | 101 | 'showProgressBar': function () { |
105 | varprogressBarElement; | 102 | varprogressBarElement; |
106 | 103 | ||
107 | this.getElement('container').innerHTML = ''; | 104 | this.getElement('container').innerHTML = ''; |
108 | 105 | ||
109 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); | 106 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); |
110 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); | 107 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); |
111 | 108 | ||
112 | if (this.canCancelWhileProcessing() == true) { | 109 | if (this.canCancelWhileProcessing() == true) { |
113 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); | 110 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); |
114 | } else { | 111 | } else { |
115 | this.setButtons([]); | 112 | this.setButtons([]); |
116 | } | 113 | } |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //------------------------------------------------------------------------- | 116 | //------------------------------------------------------------------------- |
120 | 117 | ||
121 | 'showFailure': function (someParameters) { | 118 | 'showFailure': function (someParameters) { |
122 | // this.setType('ALERT'); | 119 | // this.setType('ALERT'); |
123 | this.setType(someParameters['type']); | 120 | this.setType(someParameters['type']); |
124 | // this.setTitle("Login failed"); | 121 | // this.setTitle("Login failed"); |
125 | this.setTitle(someParameters['title']); | 122 | this.setTitle(someParameters['title']); |
126 | // this.setText("Wrong passphrase; the unlock has failed."); | 123 | // this.setText("Wrong passphrase; the unlock has failed."); |
127 | this.setText(someParameters['text']); | 124 | this.setText(someParameters['text']); |
128 | // this.getElement('container').innerHTML = ''; | 125 | // this.getElement('container').innerHTML = ''; |
129 | this.getElement('container').innerHTML = ''; | 126 | this.getElement('container').innerHTML = ''; |
130 | // this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); | 127 | // this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); |
131 | this.setButtons(someParameters['buttons']); | 128 | this.setButtons(someParameters['buttons']); |
132 | }, | 129 | }, |
133 | 130 | ||
134 | //------------------------------------------------------------------------- | 131 | //------------------------------------------------------------------------- |
135 | 132 | ||
136 | 'closeOk': function () { | 133 | 'closeOk': function () { |
137 | //console.log("=== closeOk"); | 134 | //console.log("=== closeOk"); |
138 | this.showProgressBar(); | 135 | this.showProgressBar(); |
139 | MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback')); | 136 | MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback')); |
140 | this._deferred = null; | 137 | this._deferred = null; |
141 | }, | 138 | }, |
142 | 139 | ||
143 | 'closeCancel': function () { | 140 | 'closeCancel': function () { |
144 | //console.log("=== closeCancel"); | 141 | //console.log("=== closeCancel"); |
145 | this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); | 142 | this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); |
146 | this.deferred().cancel(); | 143 | this.deferred().cancel(); |
147 | this._deferred = null; | 144 | this._deferred = null; |
148 | }, | 145 | }, |
149 | 146 | ||
150 | //------------------------------------------------------------------------- | 147 | //------------------------------------------------------------------------- |
151 | 148 | ||
152 | 'deferredDone': function () { | 149 | 'deferredDone': function () { |
153 | //console.log("=== deferredDone"); | 150 | //console.log("=== deferredDone"); |
154 | return this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); | 151 | return this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); |
155 | }, | 152 | }, |
156 | 153 | ||
157 | 'deferredError': function (someParameters) { | 154 | 'deferredError': function (someParameters) { |
158 | //console.log("=== deferredError"); | 155 | //console.log("=== deferredError"); |
159 | this.showFailure(someParameters); | 156 | this.showFailure(someParameters); |
160 | }, | 157 | }, |
161 | 158 | ||
162 | //------------------------------------------------------------------------- | 159 | //------------------------------------------------------------------------- |
163 | __syntaxFix__: "syntax fix" | 160 | __syntaxFix__: "syntax fix" |
164 | }); | 161 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js index c1b4f13..089e3d4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js | |||
@@ -1,140 +1,137 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) { | 28 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | //MochiKit.Logging.logDebug(">>> new TextFormField"); | 31 | //MochiKit.Logging.logDebug(">>> new TextFormField"); |
35 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); | 32 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); |
36 | 33 | ||
37 | this._wrapperElement = null; | 34 | this._wrapperElement = null; |
38 | this._entropyElement = null; | 35 | this._entropyElement = null; |
39 | 36 | ||
40 | this.render(); | 37 | this.render(); |
41 | //MochiKit.Logging.logDebug("<<< new TextFormField"); | 38 | //MochiKit.Logging.logDebug("<<< new TextFormField"); |
42 | 39 | ||
43 | return this; | 40 | return this; |
44 | }; | 41 | }; |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, { | 43 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, { |
47 | 44 | ||
48 | 'toString': function() { | 45 | 'toString': function() { |
49 | return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay"; | 46 | return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //----------------------------------------------------- | 49 | //----------------------------------------------------- |
53 | 50 | ||
54 | 'wrapperElement': function() { | 51 | 'wrapperElement': function() { |
55 | return this._wrapperElement; | 52 | return this._wrapperElement; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'setWrapperElement': function(aValue) { | 55 | 'setWrapperElement': function(aValue) { |
59 | this._wrapperElement = aValue; | 56 | this._wrapperElement = aValue; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //----------------------------------------------------- | 59 | //----------------------------------------------------- |
63 | 60 | ||
64 | 'passwordElement': function() { | 61 | 'passwordElement': function() { |
65 | return this.element(); | 62 | return this.element(); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //----------------------------------------------------- | 65 | //----------------------------------------------------- |
69 | 66 | ||
70 | 'entropyElement': function() { | 67 | 'entropyElement': function() { |
71 | return this._entropyElement; | 68 | return this._entropyElement; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setEntropyElement': function(aValue) { | 71 | 'setEntropyElement': function(aValue) { |
75 | this._entropyElement = aValue; | 72 | this._entropyElement = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //----------------------------------------------------- | 75 | //----------------------------------------------------- |
79 | 76 | ||
80 | 'render': function() { | 77 | 'render': function() { |
81 | /* | 78 | /* |
82 | MochiKit.Signal.disconnectAllTo(this); | 79 | MochiKit.Signal.disconnectAllTo(this); |
83 | 80 | ||
84 | this.setWrapperElement(this.element().wrap({tag:'div'})); | 81 | this.setWrapperElement(this.element().wrap({tag:'div'})); |
85 | this.setEntropyElement(Clipperz.DOM.Helper.append(this.wrapperElement().dom, {tag:'div', cls:'passwordEntropy', html:" "}, true)); | 82 | this.setEntropyElement(Clipperz.DOM.Helper.append(this.wrapperElement().dom, {tag:'div', cls:'passwordEntropy', html:" "}, true)); |
86 | // this.setEntropyElement(Clipperz.DOM.Helper.insertBefore(this.element(), {tag:'div', cls:'passwordEntropy', html:" "}, true)); | 83 | // this.setEntropyElement(Clipperz.DOM.Helper.insertBefore(this.element(), {tag:'div', cls:'passwordEntropy', html:" "}, true)); |
87 | this.entropyElement().wrap({tag:'div', cls:'passwordEntropyWrapper'}); | 84 | this.entropyElement().wrap({tag:'div', cls:'passwordEntropyWrapper'}); |
88 | 85 | ||
89 | this.updateEntropyElement(); | 86 | this.updateEntropyElement(); |
90 | 87 | ||
91 | this.connect('onkeyup', 'updateEntropyElement'); | 88 | this.connect('onkeyup', 'updateEntropyElement'); |
92 | this.connect('onchange', 'updateEntropyElement'); | 89 | this.connect('onchange', 'updateEntropyElement'); |
93 | this.connect('onblur', 'updateEntropyElement'); | 90 | this.connect('onblur', 'updateEntropyElement'); |
94 | */ | 91 | */ |
95 | MochiKit.Signal.disconnectAllTo(this); | 92 | MochiKit.Signal.disconnectAllTo(this); |
96 | 93 | ||
97 | this.setEntropyElement(this.element()); | 94 | this.setEntropyElement(this.element()); |
98 | this.entropyElement().addClass("entropyLevelIndicator"); | 95 | this.entropyElement().addClass("entropyLevelIndicator"); |
99 | 96 | ||
100 | this.updateEntropyElement(); | 97 | this.updateEntropyElement(); |
101 | 98 | ||
102 | this.connect('onkeyup', 'updateEntropyElement'); | 99 | this.connect('onkeyup', 'updateEntropyElement'); |
103 | this.connect('onchange', 'updateEntropyElement'); | 100 | this.connect('onchange', 'updateEntropyElement'); |
104 | this.connect('onblur', 'updateEntropyElement'); | 101 | this.connect('onblur', 'updateEntropyElement'); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //----------------------------------------------------- | 104 | //----------------------------------------------------- |
108 | 105 | ||
109 | 'computeEntropyForString': function(aValue) { | 106 | 'computeEntropyForString': function(aValue) { |
110 | return Clipperz.PM.Crypto.passwordEntropy(aValue); | 107 | return Clipperz.PM.Crypto.passwordEntropy(aValue); |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //----------------------------------------------------- | 110 | //----------------------------------------------------- |
114 | 111 | ||
115 | 'updateEntropyElement': function(anEvent) { | 112 | 'updateEntropyElement': function(anEvent) { |
116 | /* | 113 | /* |
117 | //MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement"); | 114 | //MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement"); |
118 | varmaxExtent; | 115 | varmaxExtent; |
119 | varentropy; | 116 | varentropy; |
120 | 117 | ||
121 | entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); | 118 | entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); |
122 | //MochiKit.Logging.logDebug("--- PasswordEntropyDisplay.updateEntropyElement - entropy: " + entropy); | 119 | //MochiKit.Logging.logDebug("--- PasswordEntropyDisplay.updateEntropyElement - entropy: " + entropy); |
123 | this.entropyElement().setStyle('background-position', "0px " + -entropy + "px"); | 120 | this.entropyElement().setStyle('background-position', "0px " + -entropy + "px"); |
124 | this.entropyElement().setWidth(this.passwordElement().getWidth() * (entropy/128)); | 121 | this.entropyElement().setWidth(this.passwordElement().getWidth() * (entropy/128)); |
125 | //MochiKit.Logging.logDebug("<<< PasswordEntropyDisplay.updateEntropyElement"); | 122 | //MochiKit.Logging.logDebug("<<< PasswordEntropyDisplay.updateEntropyElement"); |
126 | */ | 123 | */ |
127 | varentropy; | 124 | varentropy; |
128 | 125 | ||
129 | entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); | 126 | entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); |
130 | 127 | ||
131 | if (entropy == 0) { | 128 | if (entropy == 0) { |
132 | this.entropyElement().setStyle('background-position', "0px 26px"); | 129 | this.entropyElement().setStyle('background-position', "0px 26px"); |
133 | } else { | 130 | } else { |
134 | this.entropyElement().setStyle('background-position', "0px -" + (128-entropy)*26 + "px"); | 131 | this.entropyElement().setStyle('background-position', "0px -" + (128-entropy)*26 + "px"); |
135 | } | 132 | } |
136 | }, | 133 | }, |
137 | 134 | ||
138 | //----------------------------------------------------- | 135 | //----------------------------------------------------- |
139 | __syntaxFix__: '__syntaxFix__' | 136 | __syntaxFix__: '__syntaxFix__' |
140 | }); | 137 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js index 7e7f8fe..5991530 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js | |||
@@ -1,73 +1,70 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.ProgressBar = function(args) { | 28 | Clipperz.PM.UI.Common.Components.ProgressBar = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.ProgressBar.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.ProgressBar.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | 34 | ||
38 | this.renderSelf(); | 35 | this.renderSelf(); |
39 | 36 | ||
40 | MochiKit.Signal.connect(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', this, 'updateProgressHandler') | 37 | MochiKit.Signal.connect(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', this, 'updateProgressHandler') |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ProgressBar, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ProgressBar, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.ProgressBar component"; | 49 | return "Clipperz.PM.UI.Common.Components.ProgressBar component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'renderSelf': function() { | 54 | 'renderSelf': function() { |
58 | this.append(this.element(), {tag:'div', cls:'loadingBar', children:[ | 55 | this.append(this.element(), {tag:'div', cls:'loadingBar', children:[ |
59 | {tag:'div', cls:'loadingBarProgressBox', children:[ | 56 | {tag:'div', cls:'loadingBarProgressBox', children:[ |
60 | {tag:'div', id:this.getId('loadingBarProgress'), cls:'loadingBarProgress'} | 57 | {tag:'div', id:this.getId('loadingBarProgress'), cls:'loadingBarProgress'} |
61 | ]} | 58 | ]} |
62 | ]}); | 59 | ]}); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'updateProgressHandler': function (anEvent) { | 64 | 'updateProgressHandler': function (anEvent) { |
68 | MochiKit.Style.setElementDimensions(this.getId('loadingBarProgress'), {w:anEvent}, '%'); | 65 | MochiKit.Style.setElementDimensions(this.getId('loadingBarProgress'), {w:anEvent}, '%'); |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | __syntaxFix__: "syntax fix" | 69 | __syntaxFix__: "syntax fix" |
73 | }); | 70 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js index b9bb850..1992154 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) { | 28 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._title = args.title || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._title = args.title || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._type = args.type || Clipperz.Base.exception.raise('MandatoryParameter'); //ALERT, INFO, ERROR | 35 | this._type = args.type || Clipperz.Base.exception.raise('MandatoryParameter'); //ALERT, INFO, ERROR |
39 | this._buttons = args.buttons || Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._buttons = args.buttons || Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._buttonComponents = []; | 38 | this._buttonComponents = []; |
42 | this._deferred = null; | 39 | this._deferred = null; |
43 | 40 | ||
44 | this.renderModalMask(); | 41 | this.renderModalMask(); |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | //============================================================================= | 46 | //============================================================================= |
50 | 47 | ||
51 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { | 48 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'toString': function () { | 52 | 'toString': function () { |
56 | return "Clipperz.PM.UI.Common.Components.SimpleMessagePanel component"; | 53 | return "Clipperz.PM.UI.Common.Components.SimpleMessagePanel component"; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'deferred': function() { | 58 | 'deferred': function() { |
62 | if (this._deferred == null) { | 59 | if (this._deferred == null) { |
63 | this._deferred = new Clipperz.Async.Deferred("SimpleMessagePanel.deferred", {trace:false}); | 60 | this._deferred = new Clipperz.Async.Deferred("SimpleMessagePanel.deferred", {trace:false}); |
64 | } | 61 | } |
65 | 62 | ||
66 | return this._deferred; | 63 | return this._deferred; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'title': function () { | 68 | 'title': function () { |
72 | return this._title; | 69 | return this._title; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setTitle': function (aValue) { | 72 | 'setTitle': function (aValue) { |
76 | this._title = aValue; | 73 | this._title = aValue; |
77 | 74 | ||
78 | if (this.getElement('title') != null) { | 75 | if (this.getElement('title') != null) { |
79 | this.getElement('title').innerHTML = aValue; | 76 | this.getElement('title').innerHTML = aValue; |
80 | } | 77 | } |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'text': function () { | 82 | 'text': function () { |
86 | return this._text; | 83 | return this._text; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'setText': function (aValue) { | 86 | 'setText': function (aValue) { |
90 | this._text = aValue; | 87 | this._text = aValue; |
91 | 88 | ||
92 | if (this.getElement('text') != null) { | 89 | if (this.getElement('text') != null) { |
93 | this.getElement('text').innerHTML = aValue; | 90 | this.getElement('text').innerHTML = aValue; |
94 | } | 91 | } |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'type': function () { | 96 | 'type': function () { |
100 | return this._type; | 97 | return this._type; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'setType': function (aValue) { | 100 | 'setType': function (aValue) { |
104 | if (this.getElement('icon') != null) { | 101 | if (this.getElement('icon') != null) { |
105 | MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); | 102 | MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); |
106 | MochiKit.DOM.addElementClass(this.getId('icon'), aValue); | 103 | MochiKit.DOM.addElementClass(this.getId('icon'), aValue); |
107 | } | 104 | } |
108 | 105 | ||
109 | this._type = aValue; | 106 | this._type = aValue; |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'buttons': function () { | 111 | 'buttons': function () { |
115 | return this._buttons; | 112 | return this._buttons; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'setButtons': function (someValues) { | 115 | 'setButtons': function (someValues) { |
119 | MochiKit.Iter.forEach(this.buttonComponents(), MochiKit.Base.methodcaller('clear')); | 116 | MochiKit.Iter.forEach(this.buttonComponents(), MochiKit.Base.methodcaller('clear')); |
120 | 117 | ||
121 | this._buttons = someValues; | 118 | this._buttons = someValues; |
122 | 119 | ||
123 | if (this.getElement('buttonArea') != null) { | 120 | if (this.getElement('buttonArea') != null) { |
124 | this.renderButtons(); | 121 | this.renderButtons(); |
125 | } | 122 | } |
126 | }, | 123 | }, |
127 | 124 | ||
128 | //......................................................................... | 125 | //......................................................................... |
129 | 126 | ||
130 | 'buttonComponents': function () { | 127 | 'buttonComponents': function () { |
131 | return this._buttonComponents; | 128 | return this._buttonComponents; |
132 | }, | 129 | }, |
133 | 130 | ||
134 | //------------------------------------------------------------------------- | 131 | //------------------------------------------------------------------------- |
135 | 132 | ||
136 | 'renderSelf': function() { | 133 | 'renderSelf': function() { |
137 | this.append(this.element(), {tag:'div', cls:'SimpleMessagePanel', id:this.getId('panel'), children: [ | 134 | this.append(this.element(), {tag:'div', cls:'SimpleMessagePanel', id:this.getId('panel'), children: [ |
138 | {tag:'div', cls:'header', children:[]}, | 135 | {tag:'div', cls:'header', children:[]}, |
139 | {tag:'div', cls:'body', children:[ | 136 | {tag:'div', cls:'body', children:[ |
140 | {tag:'div', id:this.getId('icon'),cls:'img ' + this.type(), children:[{tag:'div'}]}, | 137 | {tag:'div', id:this.getId('icon'),cls:'img ' + this.type(), children:[{tag:'div'}]}, |
141 | {tag:'h3', id:this.getId('title'),html:this.title()}, | 138 | {tag:'h3', id:this.getId('title'),html:this.title()}, |
142 | {tag:'p', id:this.getId('text'),html:this.text()}, | 139 | {tag:'p', id:this.getId('text'),html:this.text()}, |
143 | {tag:'div', id:this.getId('container')}, | 140 | {tag:'div', id:this.getId('container')}, |
144 | {tag:'div', id:this.getId('buttonArea'), cls:'buttonArea', children:[]} | 141 | {tag:'div', id:this.getId('buttonArea'), cls:'buttonArea', children:[]} |
145 | ]}, | 142 | ]}, |
146 | {tag:'div', cls:'footer', children:[]} | 143 | {tag:'div', cls:'footer', children:[]} |
147 | ]}); | 144 | ]}); |
148 | 145 | ||
149 | MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'keyDownHandler'); | 146 | MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'keyDownHandler'); |
150 | 147 | ||
151 | this.renderButtons(); | 148 | this.renderButtons(); |
152 | }, | 149 | }, |
153 | 150 | ||
154 | //------------------------------------------------------------------------- | 151 | //------------------------------------------------------------------------- |
155 | 152 | ||
156 | 'renderButtons': function () { | 153 | 'renderButtons': function () { |
157 | this.getElement('buttonArea').innerHTML = ''; | 154 | this.getElement('buttonArea').innerHTML = ''; |
158 | 155 | ||
159 | MochiKit.Base.map(MochiKit.Base.bind(function (aButton) { | 156 | MochiKit.Base.map(MochiKit.Base.bind(function (aButton) { |
160 | var buttonElement; | 157 | var buttonElement; |
161 | var buttonComponent; | 158 | var buttonComponent; |
162 | 159 | ||
163 | // element = this.append(this.getElement('buttonArea'), {tag:'div', cls:'button' + (aButton['isDefault'] === true ? ' default' : ''), children:[ | 160 | // element = this.append(this.getElement('buttonArea'), {tag:'div', cls:'button' + (aButton['isDefault'] === true ? ' default' : ''), children:[ |
164 | // {tag:'a', href:'#'/*, id:this.getId('buttonLink')*/, html:aButton['text']} | 161 | // {tag:'a', href:'#'/*, id:this.getId('buttonLink')*/, html:aButton['text']} |
165 | // ]}); | 162 | // ]}); |
166 | 163 | ||
167 | buttonElement = this.append(this.getElement('buttonArea'), {tag:'div'}); | 164 | buttonElement = this.append(this.getElement('buttonArea'), {tag:'div'}); |
168 | buttonComponent = new Clipperz.PM.UI.Common.Components.Button({'element':buttonElement, 'text':aButton['text'], 'isDefault':aButton['isDefault']}); | 165 | buttonComponent = new Clipperz.PM.UI.Common.Components.Button({'element':buttonElement, 'text':aButton['text'], 'isDefault':aButton['isDefault']}); |
169 | this.buttonComponents().push(buttonComponent); | 166 | this.buttonComponents().push(buttonComponent); |
170 | 167 | ||
171 | MochiKit.Signal.connect(buttonComponent, 'onclick', MochiKit.Base.method(this, 'buttonEventHandler', aButton)); | 168 | MochiKit.Signal.connect(buttonComponent, 'onclick', MochiKit.Base.method(this, 'buttonEventHandler', aButton)); |
172 | }, this), MochiKit.Iter.reversed(this.buttons())); | 169 | }, this), MochiKit.Iter.reversed(this.buttons())); |
173 | }, | 170 | }, |
174 | 171 | ||
175 | //------------------------------------------------------------------------- | 172 | //------------------------------------------------------------------------- |
176 | 173 | ||
177 | 'displayElement': function() { | 174 | 'displayElement': function() { |
178 | return this.getElement('panel'); | 175 | return this.getElement('panel'); |
179 | }, | 176 | }, |
180 | 177 | ||
181 | //------------------------------------------------------------------------- | 178 | //------------------------------------------------------------------------- |
182 | 179 | ||
183 | 'closeOk': function () { | 180 | 'closeOk': function () { |
184 | this.deferred().callback(); | 181 | this.deferred().callback(); |
185 | this._deferred = null; | 182 | this._deferred = null; |
186 | }, | 183 | }, |
187 | 184 | ||
188 | 'closeCancel': function () { | 185 | 'closeCancel': function () { |
189 | this.deferred().cancel(); | 186 | this.deferred().cancel(); |
190 | this._deferred = null; | 187 | this._deferred = null; |
191 | }, | 188 | }, |
192 | 189 | ||
193 | 'closeError': function () { | 190 | 'closeError': function () { |
194 | this.deferred().errback(); | 191 | this.deferred().errback(); |
195 | this._deferred = null; | 192 | this._deferred = null; |
196 | }, | 193 | }, |
197 | 194 | ||
198 | //------------------------------------------------------------------------- | 195 | //------------------------------------------------------------------------- |
199 | 196 | ||
200 | 'buttonEventHandler': function(aButton, anEvent) { | 197 | 'buttonEventHandler': function(aButton, anEvent) { |
201 | anEvent.preventDefault(); | 198 | anEvent.preventDefault(); |
202 | 199 | ||
203 | // MochiKit.Signal.signal(this, 'cancelEvent'); | 200 | // MochiKit.Signal.signal(this, 'cancelEvent'); |
204 | switch (aButton['result']) { | 201 | switch (aButton['result']) { |
205 | case 'OK': | 202 | case 'OK': |
206 | //console.log("==> OK"); | 203 | //console.log("==> OK"); |
207 | this.closeOk(); | 204 | this.closeOk(); |
208 | break; | 205 | break; |
209 | case 'CANCEL': | 206 | case 'CANCEL': |
210 | //console.log("==> CANCEL"); | 207 | //console.log("==> CANCEL"); |
211 | this.closeCancel(); | 208 | this.closeCancel(); |
212 | break; | 209 | break; |
213 | default: | 210 | default: |
214 | //console.log("==> ????"); | 211 | //console.log("==> ????"); |
215 | this.closeError(); | 212 | this.closeError(); |
216 | break; | 213 | break; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js index afb3bf9..936514a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js | |||
@@ -1,69 +1,66 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) { | 28 | Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._tabPanelController = null; | 32 | this._tabPanelController = null; |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TabPanelComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TabPanelComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Common.Components.TabPanelComponent component"; | 42 | return "Clipperz.PM.UI.Common.Components.TabPanelComponent component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'tabPanelControllerConfiguration': function() { | 47 | 'tabPanelControllerConfiguration': function() { |
51 | return this._tabPanelControllerConfiguration; | 48 | return this._tabPanelControllerConfiguration; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'tabPanelController': function() { | 51 | 'tabPanelController': function() { |
55 | if (this._tabPanelController == null) { | 52 | if (this._tabPanelController == null) { |
56 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({component:this, configuration:this.tabPanelControllerConfiguration()}); | 53 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({component:this, configuration:this.tabPanelControllerConfiguration()}); |
57 | } | 54 | } |
58 | 55 | ||
59 | return this._tabPanelController; | 56 | return this._tabPanelController; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'initiallySelectedTab': function() { | 59 | 'initiallySelectedTab': function() { |
63 | return this._initiallySelectedTab; | 60 | return this._initiallySelectedTab; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | __syntaxFix__: "syntax fix" | 64 | __syntaxFix__: "syntax fix" |
68 | 65 | ||
69 | }); | 66 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js index 7507b86..095e8ed 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.Tooltip = function(args) { | 28 | Clipperz.PM.UI.Common.Components.Tooltip = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.Tooltip.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.Tooltip.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._position = args.position || 'BELOW'; //'BELOW', 'ABOVE', 'LEFT', 'RIGHT' | 35 | this._position = args.position || 'BELOW'; //'BELOW', 'ABOVE', 'LEFT', 'RIGHT' |
39 | 36 | ||
40 | this._boxDimensions = null; | 37 | this._boxDimensions = null; |
41 | this._enabled = (typeof(args.enabled) == 'undefined' ? true : args.enabled); | 38 | this._enabled = (typeof(args.enabled) == 'undefined' ? true : args.enabled); |
42 | this._isVisible = false; | 39 | this._isVisible = false; |
43 | 40 | ||
44 | this.renderSelf(); | 41 | this.renderSelf(); |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | //============================================================================= | 46 | //============================================================================= |
50 | 47 | ||
51 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { | 48 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'toString': function () { | 52 | 'toString': function () { |
56 | return "Clipperz.PM.UI.Common.Components.Tooltip component"; | 53 | return "Clipperz.PM.UI.Common.Components.Tooltip component"; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'text': function () { | 58 | 'text': function () { |
62 | return this._text; | 59 | return this._text; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | 'setText': function (aValue) { | 62 | 'setText': function (aValue) { |
66 | this._text = aValue; | 63 | this._text = aValue; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'position': function () { | 68 | 'position': function () { |
72 | return this._position; | 69 | return this._position; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setPosition': function (aValue) { | 72 | 'setPosition': function (aValue) { |
76 | this._position = aValue; | 73 | this._position = aValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'enabled': function () { | 78 | 'enabled': function () { |
82 | return this._enabled; | 79 | return this._enabled; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | 'setIsEnabled': function (aValue) { | 82 | 'setIsEnabled': function (aValue) { |
86 | this._enabled = aValue; | 83 | this._enabled = aValue; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | 87 | ||
91 | 'isVisible': function () { | 88 | 'isVisible': function () { |
92 | return this._isVisible; | 89 | return this._isVisible; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | 'setIsVisible': function (aValue) { | 92 | 'setIsVisible': function (aValue) { |
96 | this._isVisible = aValue; | 93 | this._isVisible = aValue; |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'renderSelf': function() { | 98 | 'renderSelf': function() { |
102 | // this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 99 | // this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
103 | // this.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 100 | // this.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
104 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 101 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
105 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ | 102 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ |
106 | {tag:'div', cls:'tooltip_text', children:[ | 103 | {tag:'div', cls:'tooltip_text', children:[ |
107 | {tag:'span', html:this.text()} | 104 | {tag:'span', html:this.text()} |
108 | ]}, | 105 | ]}, |
109 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} | 106 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} |
110 | ]}, | 107 | ]}, |
111 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} | 108 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} |
112 | ]}); | 109 | ]}); |
113 | 110 | ||
114 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 111 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
115 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 112 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
116 | 113 | ||
117 | MochiKit.Style.hideElement(this.displayElement()); | 114 | MochiKit.Style.hideElement(this.displayElement()); |
118 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 115 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
119 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 116 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
120 | }, | 117 | }, |
121 | 118 | ||
122 | //----------------------------------------------------- | 119 | //----------------------------------------------------- |
123 | 120 | ||
124 | 'displayElement': function() { | 121 | 'displayElement': function() { |
125 | return this.getElement('tooltip'); | 122 | return this.getElement('tooltip'); |
126 | }, | 123 | }, |
127 | 124 | ||
128 | //------------------------------------------------------------------------- | 125 | //------------------------------------------------------------------------- |
129 | 126 | ||
130 | 'boxDimensions': function () { | 127 | 'boxDimensions': function () { |
131 | return this._boxDimensions; | 128 | return this._boxDimensions; |
132 | }, | 129 | }, |
133 | 130 | ||
134 | //------------------------------------------------------------------------- | 131 | //------------------------------------------------------------------------- |
135 | 132 | ||
136 | 'show': function () { | 133 | 'show': function () { |
137 | var elementSizeAndPosition; | 134 | var elementSizeAndPosition; |
138 | var arrowPosition; | 135 | var arrowPosition; |
139 | var bodyPosition; | 136 | var bodyPosition; |
140 | 137 | ||
141 | if (this.isVisible() == false) { | 138 | if (this.isVisible() == false) { |
142 | arrowPosition = {}; | 139 | arrowPosition = {}; |
143 | bodyPosition = {}; | 140 | bodyPosition = {}; |
144 | 141 | ||
145 | this.setIsVisible(true); | 142 | this.setIsVisible(true); |
146 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); | 143 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); |
147 | //console.log("ELEMENT SIZE AND POSITION", Clipperz.Base.serializeJSON(elementSizeAndPosition)); | 144 | //console.log("ELEMENT SIZE AND POSITION", Clipperz.Base.serializeJSON(elementSizeAndPosition)); |
148 | //console.log("BOX DIMENSIONS", Clipperz.Base.serializeJSON(this.boxDimensions())); | 145 | //console.log("BOX DIMENSIONS", Clipperz.Base.serializeJSON(this.boxDimensions())); |
149 | switch (this.position()) { | 146 | switch (this.position()) { |
150 | case 'ABOVE': | 147 | case 'ABOVE': |
151 | //console.log("ABOVE"); | 148 | //console.log("ABOVE"); |
152 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 149 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
153 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 150 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
154 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; | 151 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; |
155 | 152 | ||
156 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 153 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
157 | arrowPosition.y = elementSizeAndPosition.position.y - 13; | 154 | arrowPosition.y = elementSizeAndPosition.position.y - 13; |
158 | break; | 155 | break; |
159 | case 'BELOW': | 156 | case 'BELOW': |
160 | //console.log("BELOW"); | 157 | //console.log("BELOW"); |
161 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 158 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
162 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 159 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
163 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; | 160 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; |
164 | 161 | ||
165 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 162 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
166 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; | 163 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; |
167 | break; | 164 | break; |
168 | case 'LEFT': | 165 | case 'LEFT': |
169 | //console.log("LEFT"); | 166 | //console.log("LEFT"); |
170 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); | 167 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); |
171 | bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; | 168 | bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; |
172 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); | 169 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); |
173 | 170 | ||
174 | arrowPosition.x = elementSizeAndPosition.position.x -13; | 171 | arrowPosition.x = elementSizeAndPosition.position.x -13; |
175 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); | 172 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); |
176 | break; | 173 | break; |
177 | case 'RIGHT': | 174 | case 'RIGHT': |
178 | //console.log("RIGHT"); | 175 | //console.log("RIGHT"); |
179 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); | 176 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); |
180 | bodyPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w + 13; | 177 | bodyPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w + 13; |
181 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); | 178 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); |
182 | 179 | ||
183 | arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w; | 180 | arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w; |
184 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); | 181 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); |
185 | break; | 182 | break; |
186 | } | 183 | } |
187 | //console.log("X: " + bodyPosition.x + ", Y: " + bodyPosition.y); | 184 | //console.log("X: " + bodyPosition.x + ", Y: " + bodyPosition.y); |
188 | 185 | ||
189 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); | 186 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); |
190 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); | 187 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); |
191 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); | 188 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); |
192 | } | 189 | } |
193 | }, | 190 | }, |
194 | 191 | ||
195 | 'hide': function () { | 192 | 'hide': function () { |
196 | if (this.isVisible() == true) { | 193 | if (this.isVisible() == true) { |
197 | MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); | 194 | MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); |
198 | this.setIsVisible(false); | 195 | this.setIsVisible(false); |
199 | } | 196 | } |
200 | }, | 197 | }, |
201 | 198 | ||
202 | //------------------------------------------------------------------------- | 199 | //------------------------------------------------------------------------- |
203 | /* | 200 | /* |
204 | 'shouldRemoveElementWhenClearningUp': function () { | 201 | 'shouldRemoveElementWhenClearningUp': function () { |
205 | return false; | 202 | return false; |
206 | }, | 203 | }, |
207 | */ | 204 | */ |
208 | //------------------------------------------------------------------------- | 205 | //------------------------------------------------------------------------- |
209 | __syntaxFix__: "syntax fix" | 206 | __syntaxFix__: "syntax fix" |
210 | }); | 207 | }); |
211 | 208 | ||
212 | Clipperz.PM.UI.Common.Components.Tooltip.initTooltips = function () { | 209 | Clipperz.PM.UI.Common.Components.Tooltip.initTooltips = function () { |
213 | Clipperz.DOM.Helper.insertBefore(MochiKit.DOM.currentDocument().body.childNodes[0], {tag:'div', id:'Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'}); | 210 | Clipperz.DOM.Helper.insertBefore(MochiKit.DOM.currentDocument().body.childNodes[0], {tag:'div', id:'Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'}); |
214 | } | 211 | } |
215 | 212 | ||
216 | MochiKit.DOM.addLoadEvent(Clipperz.PM.UI.Common.Components.Tooltip.initTooltips); | 213 | MochiKit.DOM.addLoadEvent(Clipperz.PM.UI.Common.Components.Tooltip.initTooltips); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js index c31969e..c41fc7c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js | |||
@@ -1,170 +1,167 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) { | 28 | Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) { |
32 | Clipperz.log(">>> TranslatorWidget.new"); | 29 | Clipperz.log(">>> TranslatorWidget.new"); |
33 | args = args || {}; | 30 | args = args || {}; |
34 | 31 | ||
35 | Clipperz.PM.UI.Common.Components.TranslatorWidget.superclass.constructor.apply(this, arguments); | 32 | Clipperz.PM.UI.Common.Components.TranslatorWidget.superclass.constructor.apply(this, arguments); |
36 | 33 | ||
37 | // this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | // this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | // this._stringID = args.stringID || MochiKit.DOM.getNodeAttribute(this.element(), 'stringID')|| Clipperz.Base.exception.raise('MandatoryParameter'); | 35 | // this._stringID = args.stringID || MochiKit.DOM.getNodeAttribute(this.element(), 'stringID')|| Clipperz.Base.exception.raise('MandatoryParameter'); |
39 | 36 | ||
40 | //MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 37 | //MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
41 | //MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 38 | //MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
42 | 39 | ||
43 | Clipperz.log("<<< TranslatorWidget.new"); | 40 | Clipperz.log("<<< TranslatorWidget.new"); |
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | //============================================================================= | 44 | //============================================================================= |
48 | 45 | ||
49 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TranslatorWidget, Clipperz.PM.UI.Common.Components.BaseComponent, { | 46 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TranslatorWidget, Clipperz.PM.UI.Common.Components.BaseComponent, { |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'toString': function () { | 50 | 'toString': function () { |
54 | return "Clipperz.PM.UI.Common.Components.TranslatorWidget component"; | 51 | return "Clipperz.PM.UI.Common.Components.TranslatorWidget component"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | /* | 55 | /* |
59 | 'renderSelf': function() { | 56 | 'renderSelf': function() { |
60 | this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 57 | this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
61 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ | 58 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ |
62 | {tag:'div', cls:'tooltip_text', children:[ | 59 | {tag:'div', cls:'tooltip_text', children:[ |
63 | {tag:'span', html:this.text()} | 60 | {tag:'span', html:this.text()} |
64 | ]}, | 61 | ]}, |
65 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} | 62 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} |
66 | ]}, | 63 | ]}, |
67 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} | 64 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} |
68 | ]}); | 65 | ]}); |
69 | 66 | ||
70 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 67 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
71 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 68 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
72 | 69 | ||
73 | MochiKit.Style.hideElement(this.displayElement()); | 70 | MochiKit.Style.hideElement(this.displayElement()); |
74 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 71 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
75 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 72 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
76 | }, | 73 | }, |
77 | */ | 74 | */ |
78 | //----------------------------------------------------- | 75 | //----------------------------------------------------- |
79 | /* | 76 | /* |
80 | 'displayElement': function() { | 77 | 'displayElement': function() { |
81 | return this.getElement('tooltip'); | 78 | return this.getElement('tooltip'); |
82 | }, | 79 | }, |
83 | */ | 80 | */ |
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | /* | 82 | /* |
86 | 'boxDimensions': function () { | 83 | 'boxDimensions': function () { |
87 | return this._boxDimensions; | 84 | return this._boxDimensions; |
88 | }, | 85 | }, |
89 | */ | 86 | */ |
90 | //------------------------------------------------------------------------- | 87 | //------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'show': function (anElement, aStringID) { | 89 | 'show': function (anElement, aStringID) { |
93 | Clipperz.log(">>> Clipperz.PM.UI.Common.Components.TranslatorWidget.show: " + aStringID); | 90 | Clipperz.log(">>> Clipperz.PM.UI.Common.Components.TranslatorWidget.show: " + aStringID); |
94 | /* | 91 | /* |
95 | var elementSizeAndPosition; | 92 | var elementSizeAndPosition; |
96 | var arrowPosition; | 93 | var arrowPosition; |
97 | var bodyPosition; | 94 | var bodyPosition; |
98 | 95 | ||
99 | arrowPosition = {}; | 96 | arrowPosition = {}; |
100 | bodyPosition = {}; | 97 | bodyPosition = {}; |
101 | 98 | ||
102 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); | 99 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); |
103 | switch (this.position()) { | 100 | switch (this.position()) { |
104 | case 'ABOVE': | 101 | case 'ABOVE': |
105 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 102 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
106 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 103 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
107 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; | 104 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; |
108 | 105 | ||
109 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 106 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
110 | arrowPosition.y = elementSizeAndPosition.position.y - 13; | 107 | arrowPosition.y = elementSizeAndPosition.position.y - 13; |
111 | break; | 108 | break; |
112 | case 'BELOW': | 109 | case 'BELOW': |
113 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 110 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
114 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 111 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
115 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; | 112 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; |
116 | 113 | ||
117 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 114 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
118 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; | 115 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; |
119 | break; | 116 | break; |
120 | case 'LEFT': | 117 | case 'LEFT': |
121 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); | 118 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); |
122 | bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; | 119 | bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; |
123 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); | 120 | bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); |
124 | 121 | ||
125 | arrowPosition.x = elementSizeAndPosition.position.x -13; | 122 | arrowPosition.x = elementSizeAndPosition.position.x -13; |
126 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); | 123 | arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); |
127 | break; | 124 | break; |
128 | case 'RIGHT': | 125 | case 'RIGHT': |
129 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); | 126 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); |
130 | break; | 127 | break; |
131 | } | 128 | } |
132 | 129 | ||
133 | // MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); | 130 | // MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); |
134 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); | 131 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); |
135 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); | 132 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); |
136 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); | 133 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); |
137 | */ | 134 | */ |
138 | }, | 135 | }, |
139 | 136 | ||
140 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
141 | 138 | ||
142 | 'hide': function () { | 139 | 'hide': function () { |
143 | Clipperz.log("<<< Clipperz.PM.UI.Common.Components.TranslatorWidget.hide"); | 140 | Clipperz.log("<<< Clipperz.PM.UI.Common.Components.TranslatorWidget.hide"); |
144 | // MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); | 141 | // MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); |
145 | }, | 142 | }, |
146 | 143 | ||
147 | //------------------------------------------------------------------------- | 144 | //------------------------------------------------------------------------- |
148 | __syntaxFix__: "syntax fix" | 145 | __syntaxFix__: "syntax fix" |
149 | }); | 146 | }); |
150 | 147 | ||
151 | //############################################################################# | 148 | //############################################################################# |
152 | 149 | ||
153 | Clipperz.PM.UI.Common.Components.TranslatorWidget._widget = null; | 150 | Clipperz.PM.UI.Common.Components.TranslatorWidget._widget = null; |
154 | 151 | ||
155 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget = function () { | 152 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget = function () { |
156 | if (Clipperz.PM.UI.Common.Components.TranslatorWidget._widget == null) { | 153 | if (Clipperz.PM.UI.Common.Components.TranslatorWidget._widget == null) { |
157 | Clipperz.PM.UI.Common.Components.TranslatorWidget._widget = new Clipperz.PM.UI.Common.Components.TranslatorWidget(); | 154 | Clipperz.PM.UI.Common.Components.TranslatorWidget._widget = new Clipperz.PM.UI.Common.Components.TranslatorWidget(); |
158 | } | 155 | } |
159 | 156 | ||
160 | return Clipperz.PM.UI.Common.Components.TranslatorWidget._widget; | 157 | return Clipperz.PM.UI.Common.Components.TranslatorWidget._widget; |
161 | } | 158 | } |
162 | Clipperz.PM.UI.Common.Components.TranslatorWidget.show = function (anElement, aStringID) { | 159 | Clipperz.PM.UI.Common.Components.TranslatorWidget.show = function (anElement, aStringID) { |
163 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget().show(anElement, aStringID); | 160 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget().show(anElement, aStringID); |
164 | } | 161 | } |
165 | 162 | ||
166 | Clipperz.PM.UI.Common.Components.TranslatorWidget.hide = function () { | 163 | Clipperz.PM.UI.Common.Components.TranslatorWidget.hide = function () { |
167 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget().hide(); | 164 | Clipperz.PM.UI.Common.Components.TranslatorWidget.widget().hide(); |
168 | } | 165 | } |
169 | 166 | ||
170 | //############################################################################# | 167 | //############################################################################# |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js index e534435..5fd10f9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { |
32 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | this._target = Clipperz.PM.Crypto.randomKey(); | 30 | this._target = Clipperz.PM.Crypto.randomKey(); |
34 | 31 | ||
35 | return this; | 32 | return this; |
36 | } | 33 | } |
37 | 34 | ||
38 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { | 35 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { |
39 | 36 | ||
40 | 'toString': function() { | 37 | 'toString': function() { |
41 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; | 38 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; |
42 | }, | 39 | }, |
43 | 40 | ||
44 | //----------------------------------------------------------------------------- | 41 | //----------------------------------------------------------------------------- |
45 | 42 | ||
46 | 'directLogin': function () { | 43 | 'directLogin': function () { |
47 | return this._directLogin; | 44 | return this._directLogin; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //----------------------------------------------------------------------------- | 47 | //----------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'target': function () { | 49 | 'target': function () { |
53 | return this._target; | 50 | return this._target; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //============================================================================= | 53 | //============================================================================= |
57 | 54 | ||
58 | 'setWindowTitle': function (aWindow, aTitle) { | 55 | 'setWindowTitle': function (aWindow, aTitle) { |
59 | aWindow.document.title = aTitle; | 56 | aWindow.document.title = aTitle; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'setWindowBody': function (aWindow, anHTML) { | 59 | 'setWindowBody': function (aWindow, anHTML) { |
63 | aWindow.document.body.innerHTML = anHTML; | 60 | aWindow.document.body.innerHTML = anHTML; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //============================================================================= | 63 | //============================================================================= |
67 | 64 | ||
68 | 'initialWindowSetup': function (aWindow) { | 65 | 'initialWindowSetup': function (aWindow) { |
69 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); | 66 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); |
70 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); | 67 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //----------------------------------------------------------------------------- | 70 | //----------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { | 72 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { |
76 | var titleText; | 73 | var titleText; |
77 | var bodyText; | 74 | var bodyText; |
78 | 75 | ||
79 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) | 76 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) |
80 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) | 77 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) |
81 | 78 | ||
82 | this.setWindowTitle(aWindow, titleText); | 79 | this.setWindowTitle(aWindow, titleText); |
83 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); | 80 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------------------------------- | 83 | //----------------------------------------------------------------------------- |
87 | 84 | ||
88 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { | 85 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { |
89 | this.setWindowBody(aWindow, anHtml); | 86 | this.setWindowBody(aWindow, anHtml); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //============================================================================= | 89 | //============================================================================= |
93 | 90 | ||
94 | 'submitLoginForm': function(aWindow, aSubmitFunction) { | 91 | 'submitLoginForm': function(aWindow, aSubmitFunction) { |
95 | MochiKit.DOM.withWindow(aWindow, MochiKit.Base.bind(function () { | 92 | MochiKit.DOM.withWindow(aWindow, MochiKit.Base.bind(function () { |
96 | var formElement; | 93 | var formElement; |
97 | var submitButtons; | 94 | var submitButtons; |
98 | 95 | ||
99 | formElement = MochiKit.DOM.getElement('directLoginForm'); | 96 | formElement = MochiKit.DOM.getElement('directLoginForm'); |
100 | 97 | ||
101 | submitButtons = MochiKit.Base.filter(function(anInputElement) { | 98 | submitButtons = MochiKit.Base.filter(function(anInputElement) { |
102 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); | 99 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); |
103 | }, formElement.elements); | 100 | }, formElement.elements); |
104 | 101 | ||
105 | if (submitButtons.length == 0) { | 102 | if (submitButtons.length == 0) { |
106 | if (typeof(formElement.submit) == 'function') { | 103 | if (typeof(formElement.submit) == 'function') { |
107 | formElement.submit(); | 104 | formElement.submit(); |
108 | } else { | 105 | } else { |
109 | aSubmitFunction.apply(formElement); | 106 | aSubmitFunction.apply(formElement); |
110 | } | 107 | } |
111 | /* | 108 | /* |
112 | varformSubmitFunction; | 109 | varformSubmitFunction; |
113 | 110 | ||
114 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); | 111 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); |
115 | if (Clipperz_IEisBroken == true) { | 112 | if (Clipperz_IEisBroken == true) { |
116 | formElement.submit(); | 113 | formElement.submit(); |
117 | } else { | 114 | } else { |
118 | formSubmitFunction(); | 115 | formSubmitFunction(); |
119 | } | 116 | } |
120 | */ | 117 | */ |
121 | } else { | 118 | } else { |
122 | submitButtons[0].click(); | 119 | submitButtons[0].click(); |
123 | } | 120 | } |
124 | }, this)); | 121 | }, this)); |
125 | }, | 122 | }, |
126 | 123 | ||
127 | //------------------------------------------------------------------------- | 124 | //------------------------------------------------------------------------- |
128 | 125 | ||
129 | 'runSubmitFormDirectLogin': function (aWindow, someAttributes) { | 126 | 'runSubmitFormDirectLogin': function (aWindow, someAttributes) { |
130 | var html; | 127 | var html; |
131 | var formElement; | 128 | var formElement; |
132 | var submitFunction; | 129 | var submitFunction; |
133 | 130 | ||
134 | formElement = MochiKit.DOM.FORM({ | 131 | formElement = MochiKit.DOM.FORM({ |
135 | 'id':'directLoginForm', | 132 | 'id':'directLoginForm', |
136 | 'method':someAttributes['formAttributes']['method'], | 133 | 'method':someAttributes['formAttributes']['method'], |
137 | 'action':someAttributes['formAttributes']['action'] | 134 | 'action':someAttributes['formAttributes']['action'] |
138 | }); | 135 | }); |
139 | 136 | ||
140 | submitFunction = formElement.submit; | 137 | submitFunction = formElement.submit; |
141 | 138 | ||
142 | MochiKit.DOM.appendChildNodes(formElement, MochiKit.Base.map(function (anInputAttributes) { | 139 | MochiKit.DOM.appendChildNodes(formElement, MochiKit.Base.map(function (anInputAttributes) { |
143 | return MochiKit.DOM.INPUT({'type':'hidden', 'name':anInputAttributes[0], 'value':anInputAttributes[1]}); | 140 | return MochiKit.DOM.INPUT({'type':'hidden', 'name':anInputAttributes[0], 'value':anInputAttributes[1]}); |
144 | }, MochiKit.Base.items(someAttributes['inputValues']))); | 141 | }, MochiKit.Base.items(someAttributes['inputValues']))); |
145 | 142 | ||
146 | html =''; | 143 | html =''; |
147 | html += '<h3>Loading ' + someAttributes['label'] + ' ...</h3>'; | 144 | html += '<h3>Loading ' + someAttributes['label'] + ' ...</h3>'; |
148 | html +=MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV(), MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV({style:'display:none; visibility:hidden;'}), formElement)).innerHTML; | 145 | html +=MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV(), MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV({style:'display:none; visibility:hidden;'}), formElement)).innerHTML; |
149 | 146 | ||
150 | this.updateWindowWithHTMLContent(aWindow, html); | 147 | this.updateWindowWithHTMLContent(aWindow, html); |
151 | this.submitLoginForm(aWindow, submitFunction); | 148 | this.submitLoginForm(aWindow, submitFunction); |
152 | }, | 149 | }, |
153 | 150 | ||
154 | //------------------------------------------------------------------------- | 151 | //------------------------------------------------------------------------- |
155 | 152 | ||
156 | 'runHttpAuthDirectLogin': function(aWindow, someAttributes) { | 153 | 'runHttpAuthDirectLogin': function(aWindow, someAttributes) { |
157 | var completeUrl; | 154 | var completeUrl; |
158 | var url; | 155 | var url; |
159 | 156 | ||
160 | //console.log("runHttpAuthDirectLogin", someAttributes); | 157 | //console.log("runHttpAuthDirectLogin", someAttributes); |
161 | url = someAttributes['inputValues']['url']; | 158 | url = someAttributes['inputValues']['url']; |
162 | 159 | ||
163 | if (/^https?\:\/\//.test(url) == false) { | 160 | if (/^https?\:\/\//.test(url) == false) { |
164 | url = 'http://' + url; | 161 | url = 'http://' + url; |
165 | } | 162 | } |
166 | 163 | ||
167 | if (Clipperz_IEisBroken === true) { | 164 | if (Clipperz_IEisBroken === true) { |
168 | completeUrl = url; | 165 | completeUrl = url; |
169 | } else { | 166 | } else { |
170 | var username; | 167 | var username; |
171 | var password; | 168 | var password; |
172 | 169 | ||
173 | username = someAttributes['inputValues']['username']; | 170 | username = someAttributes['inputValues']['username']; |
174 | password = someAttributes['inputValues']['password']; | 171 | password = someAttributes['inputValues']['password']; |
175 | /(^https?\:\/\/)?(.*)/.test(url); | 172 | /(^https?\:\/\/)?(.*)/.test(url); |
176 | 173 | ||
177 | completeUrl = RegExp.$1 + username + ':' + password + '@' + RegExp.$2; | 174 | completeUrl = RegExp.$1 + username + ':' + password + '@' + RegExp.$2; |
178 | } | 175 | } |
179 | 176 | ||
180 | window.open(completeUrl, this.target()); | 177 | window.open(completeUrl, this.target()); |
181 | }, | 178 | }, |
182 | 179 | ||
183 | //============================================================================= | 180 | //============================================================================= |
184 | 181 | ||
185 | 'runDirectLogin': function (aWindow) { | 182 | 'runDirectLogin': function (aWindow) { |
186 | var deferredResult; | 183 | var deferredResult; |
187 | 184 | ||
188 | //console.log(">>> runDirectLogin"); | 185 | //console.log(">>> runDirectLogin"); |
189 | deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false}); | 186 | deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false}); |
190 | deferredResult.addMethod(this, 'initialWindowSetup', aWindow); | 187 | deferredResult.addMethod(this, 'initialWindowSetup', aWindow); |
191 | deferredResult.addMethod(this.directLogin(), 'label'); | 188 | deferredResult.addMethod(this.directLogin(), 'label'); |
192 | deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow); | 189 | deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow); |
193 | deferredResult.collectResults({ | 190 | deferredResult.collectResults({ |
194 | 'type': MochiKit.Base.method(this.directLogin(), 'type'), | 191 | 'type': MochiKit.Base.method(this.directLogin(), 'type'), |
195 | 'label': MochiKit.Base.method(this.directLogin(), 'label'), | 192 | 'label': MochiKit.Base.method(this.directLogin(), 'label'), |
196 | 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'), | 193 | 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'), |
197 | 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues') | 194 | 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues') |
198 | }); | 195 | }); |
199 | //deferredResult.addCallback(function (aValue) { console.log("SOME ATTRIBUTES", aValue); return aValue; }); | 196 | //deferredResult.addCallback(function (aValue) { console.log("SOME ATTRIBUTES", aValue); return aValue; }); |
200 | deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) { | 197 | deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) { |
201 | //console.log("SOME ATTRIBUTES", someAttributes); | 198 | //console.log("SOME ATTRIBUTES", someAttributes); |
202 | switch (someAttributes['type']) { | 199 | switch (someAttributes['type']) { |
203 | case 'http_auth': | 200 | case 'http_auth': |
204 | this.runHttpAuthDirectLogin(aWindow, someAttributes); | 201 | this.runHttpAuthDirectLogin(aWindow, someAttributes); |
205 | break; | 202 | break; |
206 | case 'simple_url': | 203 | case 'simple_url': |
207 | this.runSimpleUrlDirectLogin(aWindow, someAttributes); | 204 | this.runSimpleUrlDirectLogin(aWindow, someAttributes); |
208 | break; | 205 | break; |
209 | default: | 206 | default: |
210 | this.runSubmitFormDirectLogin(aWindow, someAttributes); | 207 | this.runSubmitFormDirectLogin(aWindow, someAttributes); |
211 | break; | 208 | break; |
212 | } | 209 | } |
213 | }, this)); | 210 | }, this)); |
214 | deferredResult.callback(); | 211 | deferredResult.callback(); |
215 | //console.log("<<< runDirectLogin"); | 212 | //console.log("<<< runDirectLogin"); |
216 | 213 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js index a4fa400..41fe17f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js | |||
@@ -1,143 +1,140 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._numberOfSteps= 0; | 31 | this._numberOfSteps= 0; |
35 | this._currentStep= 0; | 32 | this._currentStep= 0; |
36 | 33 | ||
37 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle'); | 34 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle'); |
38 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress',this, 'updateProgressHandle'); | 35 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress',this, 'updateProgressHandle'); |
39 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress',this, 'advanceProgressHandle'); | 36 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress',this, 'advanceProgressHandle'); |
40 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle'); | 37 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle'); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.ProgressBarController.prototype, { | 42 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.ProgressBarController.prototype, { |
46 | 43 | ||
47 | 'toString': function() { | 44 | 'toString': function() { |
48 | return "Clipperz.PM.UI.Common.Controllers.ProgressBarController"; | 45 | return "Clipperz.PM.UI.Common.Controllers.ProgressBarController"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'numberOfSteps': function() { | 50 | 'numberOfSteps': function() { |
54 | return this._numberOfSteps; | 51 | return this._numberOfSteps; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setNumberOfSteps': function (aValue) { | 54 | 'setNumberOfSteps': function (aValue) { |
58 | this._numberOfSteps = aValue; | 55 | this._numberOfSteps = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'updateNumberOfSteps': function (aValue) { | 58 | 'updateNumberOfSteps': function (aValue) { |
62 | this._numberOfSteps += aValue; | 59 | this._numberOfSteps += aValue; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'currentStep': function() { | 64 | 'currentStep': function() { |
68 | return this._currentStep; | 65 | return this._currentStep; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'advanceCurrentStep': function () { | 68 | 'advanceCurrentStep': function () { |
72 | this._currentStep ++; | 69 | this._currentStep ++; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //----------------------------------------------------------------------------- | 72 | //----------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'completedPercentage': function () { | 74 | 'completedPercentage': function () { |
78 | var result; | 75 | var result; |
79 | //Clipperz.log(">>> completedPercentage" + this.currentStep() + "/" + this.numberOfSteps(), this.currentStep() / this.numberOfSteps()); | 76 | //Clipperz.log(">>> completedPercentage" + this.currentStep() + "/" + this.numberOfSteps(), this.currentStep() / this.numberOfSteps()); |
80 | if (this.numberOfSteps() == 0) { | 77 | if (this.numberOfSteps() == 0) { |
81 | result = 0; | 78 | result = 0; |
82 | } else { | 79 | } else { |
83 | result = (Math.min(100, 100 * (this.currentStep() / this.numberOfSteps()))); | 80 | result = (Math.min(100, 100 * (this.currentStep() / this.numberOfSteps()))); |
84 | } | 81 | } |
85 | //Clipperz.log("<<< completedPercentage", result); | 82 | //Clipperz.log("<<< completedPercentage", result); |
86 | return result; | 83 | return result; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //----------------------------------------------------------------------------- | 86 | //----------------------------------------------------------------------------- |
90 | 87 | ||
91 | 'resetStatus': function () { | 88 | 'resetStatus': function () { |
92 | this._numberOfSteps= 0; | 89 | this._numberOfSteps= 0; |
93 | this._currentStep= 0; | 90 | this._currentStep= 0; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //----------------------------------------------------------------------------- | 93 | //----------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'updateProgress': function () { | 95 | 'updateProgress': function () { |
99 | //Clipperz.log(">>> updateProgress: " + this.completedPercentage() + "%"); | 96 | //Clipperz.log(">>> updateProgress: " + this.completedPercentage() + "%"); |
100 | MochiKit.Signal.signal(this, 'updateProgress', this.completedPercentage()); | 97 | MochiKit.Signal.signal(this, 'updateProgress', this.completedPercentage()); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //============================================================================= | 100 | //============================================================================= |
104 | 101 | ||
105 | 'initProgressHandle': function (anEvent) { | 102 | 'initProgressHandle': function (anEvent) { |
106 | //Clipperz.log(">>> initProgressHandle - steps: " + (anEvent != null ? anEvent['steps'] : 0)); | 103 | //Clipperz.log(">>> initProgressHandle - steps: " + (anEvent != null ? anEvent['steps'] : 0)); |
107 | this.resetStatus(); | 104 | this.resetStatus(); |
108 | if (anEvent != null) { | 105 | if (anEvent != null) { |
109 | this.setNumberOfSteps(anEvent['steps']); | 106 | this.setNumberOfSteps(anEvent['steps']); |
110 | } | 107 | } |
111 | MochiKit.Signal.signal(this, 'initProgress'); | 108 | MochiKit.Signal.signal(this, 'initProgress'); |
112 | this.updateProgress(); | 109 | this.updateProgress(); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //............................................................................. | 112 | //............................................................................. |
116 | 113 | ||
117 | 'updateProgressHandle': function (anEvent) { | 114 | 'updateProgressHandle': function (anEvent) { |
118 | this.updateNumberOfSteps(anEvent['extraSteps']); | 115 | this.updateNumberOfSteps(anEvent['extraSteps']); |
119 | //Clipperz.log("=== updateProgressHandle - steps: " + this.numberOfSteps() + " (extra " + anEvent['extraSteps'] + ")"); | 116 | //Clipperz.log("=== updateProgressHandle - steps: " + this.numberOfSteps() + " (extra " + anEvent['extraSteps'] + ")"); |
120 | this.updateProgress(); | 117 | this.updateProgress(); |
121 | }, | 118 | }, |
122 | 119 | ||
123 | //............................................................................. | 120 | //............................................................................. |
124 | 121 | ||
125 | 'advanceProgressHandle': function (anEvent) { | 122 | 'advanceProgressHandle': function (anEvent) { |
126 | this.advanceCurrentStep(); | 123 | this.advanceCurrentStep(); |
127 | //Clipperz.log("--- advanceProgressHandle: " + this.currentStep() + "/" + this.numberOfSteps()); | 124 | //Clipperz.log("--- advanceProgressHandle: " + this.currentStep() + "/" + this.numberOfSteps()); |
128 | this.updateProgress(); | 125 | this.updateProgress(); |
129 | }, | 126 | }, |
130 | 127 | ||
131 | //............................................................................. | 128 | //............................................................................. |
132 | 129 | ||
133 | 'progressDoneHandle': function (anEvent) { | 130 | 'progressDoneHandle': function (anEvent) { |
134 | //Clipperz.log("<<< progressDoneHandle: " + this.currentStep() + "/" + this.numberOfSteps()); | 131 | //Clipperz.log("<<< progressDoneHandle: " + this.currentStep() + "/" + this.numberOfSteps()); |
135 | this.resetStatus(); | 132 | this.resetStatus(); |
136 | MochiKit.Signal.signal(this, 'progressDone'); | 133 | MochiKit.Signal.signal(this, 'progressDone'); |
137 | }, | 134 | }, |
138 | 135 | ||
139 | //============================================================================= | 136 | //============================================================================= |
140 | __syntaxFix__: "syntax fix" | 137 | __syntaxFix__: "syntax fix" |
141 | }); | 138 | }); |
142 | 139 | ||
143 | Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController = new Clipperz.PM.UI.Common.Controllers.ProgressBarController(); | 140 | Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController = new Clipperz.PM.UI.Common.Controllers.ProgressBarController(); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js index fbc5929..341fde9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js | |||
@@ -1,188 +1,185 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._component = args.component; | 31 | this._component = args.component; |
35 | this._configuration = args.configuration; | 32 | this._configuration = args.configuration; |
36 | this._isEnabled = args.enabled || true; | 33 | this._isEnabled = args.enabled || true; |
37 | 34 | ||
38 | this._selectedTab = null; | 35 | this._selectedTab = null; |
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.TabPanelController.prototype, { | 39 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.TabPanelController.prototype, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.UI.Common.Controllers.TabPanelController"; | 42 | return "Clipperz.PM.UI.Common.Controllers.TabPanelController"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //----------------------------------------------------------------------------- | 45 | //----------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'component': function() { | 47 | 'component': function() { |
51 | return this._component; | 48 | return this._component; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'configuration': function() { | 51 | 'configuration': function() { |
55 | return this._configuration; | 52 | return this._configuration; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //----------------------------------------------------------------------------- | 55 | //----------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'getElement': function(anElementID) { | 57 | 'getElement': function(anElementID) { |
61 | return this.component().getElement(anElementID); | 58 | return this.component().getElement(anElementID); |
62 | }, | 59 | }, |
63 | 60 | ||
64 | 'tabForTabElement': function(anElement) { | 61 | 'tabForTabElement': function(anElement) { |
65 | varresult; | 62 | varresult; |
66 | 63 | ||
67 | for (result in this.configuration()) { | 64 | for (result in this.configuration()) { |
68 | if (this.getElement(this.configuration()[result]['tab']) == anElement) { | 65 | if (this.getElement(this.configuration()[result]['tab']) == anElement) { |
69 | break; | 66 | break; |
70 | } | 67 | } |
71 | } | 68 | } |
72 | 69 | ||
73 | return result; | 70 | return result; |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //----------------------------------------------------------------------------- | 73 | //----------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'setupTab': function(aConfiguration) { | 75 | 'setupTab': function(aConfiguration) { |
79 | vartabElement; | 76 | vartabElement; |
80 | 77 | ||
81 | tabElement = this.getElement(aConfiguration['tab']); | 78 | tabElement = this.getElement(aConfiguration['tab']); |
82 | 79 | ||
83 | MochiKit.DOM.removeElementClass(tabElement, 'selected'); | 80 | MochiKit.DOM.removeElementClass(tabElement, 'selected'); |
84 | MochiKit.Signal.connect(tabElement, 'onclick', this, 'handleTabClick') | 81 | MochiKit.Signal.connect(tabElement, 'onclick', this, 'handleTabClick') |
85 | }, | 82 | }, |
86 | 83 | ||
87 | 'setupPanel': function(aConfiguration) { | 84 | 'setupPanel': function(aConfiguration) { |
88 | this.hidePanel(aConfiguration['panel']); | 85 | this.hidePanel(aConfiguration['panel']); |
89 | }, | 86 | }, |
90 | 87 | ||
91 | 'setup': function(args) { | 88 | 'setup': function(args) { |
92 | args = args || {}; | 89 | args = args || {}; |
93 | 90 | ||
94 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupTab'),MochiKit.Base.values(this.configuration())); | 91 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupTab'),MochiKit.Base.values(this.configuration())); |
95 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupPanel'),MochiKit.Base.values(this.configuration())); | 92 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupPanel'),MochiKit.Base.values(this.configuration())); |
96 | this.selectTab(args.selected); | 93 | this.selectTab(args.selected); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //----------------------------------------------------------------------------- | 96 | //----------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'hidePanel': function(aPanel) { | 98 | 'hidePanel': function(aPanel) { |
102 | MochiKit.DOM.removeElementClass(this.getElement(aPanel), 'selected'); | 99 | MochiKit.DOM.removeElementClass(this.getElement(aPanel), 'selected'); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'selectTab': function(aTab) { | 102 | 'selectTab': function(aTab) { |
106 | if ((aTab != this.selectedTab()) && (this.isEnabled())) { | 103 | if ((aTab != this.selectedTab()) && (this.isEnabled())) { |
107 | if (this.selectedTab() != null) { | 104 | if (this.selectedTab() != null) { |
108 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['tab']),'selected'); | 105 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['tab']),'selected'); |
109 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['panel']),'selected'); | 106 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['panel']),'selected'); |
110 | } | 107 | } |
111 | 108 | ||
112 | if (aTab != null) { | 109 | if (aTab != null) { |
113 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['tab']),'selected'); | 110 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['tab']),'selected'); |
114 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['panel']),'selected'); | 111 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['panel']),'selected'); |
115 | } | 112 | } |
116 | 113 | ||
117 | this.setSelectedTab(aTab); | 114 | this.setSelectedTab(aTab); |
118 | MochiKit.Signal.signal(this, 'tabSelected', aTab); | 115 | MochiKit.Signal.signal(this, 'tabSelected', aTab); |
119 | } | 116 | } |
120 | }, | 117 | }, |
121 | 118 | ||
122 | //----------------------------------------------------------------------------- | 119 | //----------------------------------------------------------------------------- |
123 | 120 | ||
124 | 'selectedTab': function() { | 121 | 'selectedTab': function() { |
125 | return this._selectedTab; | 122 | return this._selectedTab; |
126 | }, | 123 | }, |
127 | 124 | ||
128 | 'setSelectedTab': function(aTab) { | 125 | 'setSelectedTab': function(aTab) { |
129 | this._selectedTab = aTab; | 126 | this._selectedTab = aTab; |
130 | }, | 127 | }, |
131 | 128 | ||
132 | //----------------------------------------------------------------------------- | 129 | //----------------------------------------------------------------------------- |
133 | 130 | ||
134 | 'selectedTabElement': function() { | 131 | 'selectedTabElement': function() { |
135 | var result; | 132 | var result; |
136 | 133 | ||
137 | if (this.selectedTab() != null) { | 134 | if (this.selectedTab() != null) { |
138 | result = this.getElement(this.configuration()[this.selectedTab()]['tab']); | 135 | result = this.getElement(this.configuration()[this.selectedTab()]['tab']); |
139 | } else { | 136 | } else { |
140 | result = null; | 137 | result = null; |
141 | } | 138 | } |
142 | 139 | ||
143 | return null; | 140 | return null; |
144 | }, | 141 | }, |
145 | 142 | ||
146 | 'selectedTabPanelElement': function() { | 143 | 'selectedTabPanelElement': function() { |
147 | var result; | 144 | var result; |
148 | 145 | ||
149 | if (this.selectedTab() != null) { | 146 | if (this.selectedTab() != null) { |
150 | result = this.getElement(this.configuration()[this.selectedTab()]['panel']); | 147 | result = this.getElement(this.configuration()[this.selectedTab()]['panel']); |
151 | } else { | 148 | } else { |
152 | result = null; | 149 | result = null; |
153 | } | 150 | } |
154 | 151 | ||
155 | return result; | 152 | return result; |
156 | }, | 153 | }, |
157 | 154 | ||
158 | //----------------------------------------------------------------------------- | 155 | //----------------------------------------------------------------------------- |
159 | 156 | ||
160 | 'handleTabClick': function(anEvent) { | 157 | 'handleTabClick': function(anEvent) { |
161 | this.selectTab(this.tabForTabElement(anEvent.src())); | 158 | this.selectTab(this.tabForTabElement(anEvent.src())); |
162 | anEvent.preventDefault(); | 159 | anEvent.preventDefault(); |
163 | }, | 160 | }, |
164 | 161 | ||
165 | //============================================================================= | 162 | //============================================================================= |
166 | 163 | ||
167 | 'isEnabled': function () { | 164 | 'isEnabled': function () { |
168 | return this._isEnabled; | 165 | return this._isEnabled; |
169 | }, | 166 | }, |
170 | 167 | ||
171 | 'enable': function () { | 168 | 'enable': function () { |
172 | this._isEnabled = true; | 169 | this._isEnabled = true; |
173 | MochiKit.Base.map(MochiKit.Base.bind(function (aTabComponentID) { | 170 | MochiKit.Base.map(MochiKit.Base.bind(function (aTabComponentID) { |
174 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[aTabComponentID]['tab']), 'disabled'); | 171 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[aTabComponentID]['tab']), 'disabled'); |
175 | }, this), MochiKit.Base.keys(this.configuration())); | 172 | }, this), MochiKit.Base.keys(this.configuration())); |
176 | }, | 173 | }, |
177 | 174 | ||
178 | 'disable': function () { | 175 | 'disable': function () { |
179 | this._isEnabled = false; | 176 | this._isEnabled = false; |
180 | MochiKit.Base.map(MochiKit.Base.bind(function (aTabComponentID) { | 177 | MochiKit.Base.map(MochiKit.Base.bind(function (aTabComponentID) { |
181 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTabComponentID]['tab']), 'disabled'); | 178 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTabComponentID]['tab']), 'disabled'); |
182 | }, this), MochiKit.Base.keys(this.configuration())); | 179 | }, this), MochiKit.Base.keys(this.configuration())); |
183 | }, | 180 | }, |
184 | 181 | ||
185 | //============================================================================= | 182 | //============================================================================= |
186 | 183 | ||
187 | __syntaxFix__: "syntax fix" | 184 | __syntaxFix__: "syntax fix" |
188 | }); | 185 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js index 868cea6..ef38bc6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js | |||
@@ -1,31 +1,28 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //Still empty, but here it should be reasonable to factor in code duplicated between | 26 | //Still empty, but here it should be reasonable to factor in code duplicated between |
30 | //- DirectLoginWizardController | 27 | //- DirectLoginWizardController |
31 | //- NewUserWizardController \ No newline at end of file | 28 | //- NewUserWizardController \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js index 22258f6..ea987cd 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js | |||
@@ -1,59 +1,56 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Compact'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Compact'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Compact.MainController = function() { | 28 | Clipperz.PM.UI.Compact.MainController = function() { |
32 | //this._loginPanel = null; | 29 | //this._loginPanel = null; |
33 | //this._user = null; | 30 | //this._user = null; |
34 | // | 31 | // |
35 | //this._isRunningCompact = false; | 32 | //this._isRunningCompact = false; |
36 | // | 33 | // |
37 | //Clipperz.NotificationCenter.register(null, 'userConnected', this, 'userConnectedCallback'); | 34 | //Clipperz.NotificationCenter.register(null, 'userConnected', this, 'userConnectedCallback'); |
38 | //Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler'); | 35 | //Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler'); |
39 | // | 36 | // |
40 | //Clipperz.NotificationCenter.register(null, 'EXCEPTION', this, 'reportException'); | 37 | //Clipperz.NotificationCenter.register(null, 'EXCEPTION', this, 'reportException'); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | MochiKit.Base.update(Clipperz.PM.UI.Compact.MainController.prototype, { | 42 | MochiKit.Base.update(Clipperz.PM.UI.Compact.MainController.prototype, { |
46 | 43 | ||
47 | 'toString': function() { | 44 | 'toString': function() { |
48 | return "Clipperz.PM.UI.Compact.MainController"; | 45 | return "Clipperz.PM.UI.Compact.MainController"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'run': function(shouldShowRegistrationForm) { | 50 | 'run': function(shouldShowRegistrationForm) { |
54 | MochiKit.Logging.logDebug("running " + this.toString()); | 51 | MochiKit.Logging.logDebug("running " + this.toString()); |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //----------------------------------------------------------------------------- | 54 | //----------------------------------------------------------------------------- |
58 | __syntaxFix__: "syntax fix" | 55 | __syntaxFix__: "syntax fix" |
59 | }); \ No newline at end of file | 56 | }); \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js index 4378b19..ee6d7a3 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js | |||
@@ -1,148 +1,145 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; | 33 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; |
37 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; | 34 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; |
38 | this._tabPanelControllerConfiguration = { | 35 | this._tabPanelControllerConfiguration = { |
39 | // 'ACCOUNT': { | 36 | // 'ACCOUNT': { |
40 | // tab:'accountTab', | 37 | // tab:'accountTab', |
41 | // panel:'accountPanel' | 38 | // panel:'accountPanel' |
42 | // }, | 39 | // }, |
43 | 'PASSPHRASE': { | 40 | 'PASSPHRASE': { |
44 | tab:'passphraseTab', | 41 | tab:'passphraseTab', |
45 | panel:'passphrasePanel' | 42 | panel:'passphrasePanel' |
46 | }, | 43 | }, |
47 | 'PREFERENCES': { | 44 | 'PREFERENCES': { |
48 | tab:'preferencesTab', | 45 | tab:'preferencesTab', |
49 | panel:'preferencesPanel' | 46 | panel:'preferencesPanel' |
50 | }, | 47 | }, |
51 | 'LOGIN_HISTORY': { | 48 | 'LOGIN_HISTORY': { |
52 | tab:'loginHistoryTab', | 49 | tab:'loginHistoryTab', |
53 | panel:'loginHistoryPanel' | 50 | panel:'loginHistoryPanel' |
54 | } | 51 | } |
55 | }; | 52 | }; |
56 | 53 | ||
57 | return this; | 54 | return this; |
58 | } | 55 | } |
59 | 56 | ||
60 | //============================================================================= | 57 | //============================================================================= |
61 | 58 | ||
62 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 59 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
63 | 60 | ||
64 | //------------------------------------------------------------------------- | 61 | //------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'toString': function () { | 63 | 'toString': function () { |
67 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; | 64 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 68 | ||
72 | 'renderSelf': function(/*aContainer, aPosition*/) { | 69 | 'renderSelf': function(/*aContainer, aPosition*/) { |
73 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); | 70 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); |
74 | this.append(this.element(), [ | 71 | this.append(this.element(), [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'div', cls:'subPanelTabs', children:[ | 73 | {tag:'div', cls:'subPanelTabs', children:[ |
77 | {tag:'ul', children:[ | 74 | {tag:'ul', children:[ |
78 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, | 75 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, |
79 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, | 76 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, |
80 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, | 77 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, |
81 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} | 78 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} |
82 | ]} | 79 | ]} |
83 | ]} | 80 | ]} |
84 | ]}, | 81 | ]}, |
85 | {tag:'div', cls:'body', children:[ | 82 | {tag:'div', cls:'body', children:[ |
86 | {tag:'div', cls:'accountPanel', children:[ | 83 | {tag:'div', cls:'accountPanel', children:[ |
87 | {tag:'div', cls:'subPanelContent', children:[ | 84 | {tag:'div', cls:'subPanelContent', children:[ |
88 | {tag:'ul', children:[ | 85 | {tag:'ul', children:[ |
89 | // {tag:'li', id:this.getId('accountPanel'),children:[ | 86 | // {tag:'li', id:this.getId('accountPanel'),children:[ |
90 | // {tag:'h3', html:"-- Account --"} | 87 | // {tag:'h3', html:"-- Account --"} |
91 | // ]}, | 88 | // ]}, |
92 | {tag:'li', id:this.getId('passphrasePanel'),children:[ | 89 | {tag:'li', id:this.getId('passphrasePanel'),children:[ |
93 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, | 90 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, |
94 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ | 91 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ |
95 | {tag:'div', cls:'currentCredentials', children:[ | 92 | {tag:'div', cls:'currentCredentials', children:[ |
96 | {tag:'div', cls:'field username', children:[ | 93 | {tag:'div', cls:'field username', children:[ |
97 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, | 94 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, |
98 | {tag:'input', id:this.getId('currentUsername')} | 95 | {tag:'input', id:this.getId('currentUsername')} |
99 | ]}, | 96 | ]}, |
100 | {tag:'div', cls:'field passphrase', children:[ | 97 | {tag:'div', cls:'field passphrase', children:[ |
101 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, | 98 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, |
102 | {tag:'input', id:this.getId('currentPassphrase')} | 99 | {tag:'input', id:this.getId('currentPassphrase')} |
103 | ]} | 100 | ]} |
104 | ]}, | 101 | ]}, |
105 | {tag:'div', cls:'newPassphrase', children:[ | 102 | {tag:'div', cls:'newPassphrase', children:[ |
106 | {tag:'div', cls:'field', children:[ | 103 | {tag:'div', cls:'field', children:[ |
107 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, | 104 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, |
108 | {tag:'input', id:this.getId('newPassphrase')} | 105 | {tag:'input', id:this.getId('newPassphrase')} |
109 | ]}, | 106 | ]}, |
110 | {tag:'div', cls:'field', children:[ | 107 | {tag:'div', cls:'field', children:[ |
111 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, | 108 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, |
112 | {tag:'input', id:this.getId('reNewPassphrase')} | 109 | {tag:'input', id:this.getId('reNewPassphrase')} |
113 | ]} | 110 | ]} |
114 | ]}, | 111 | ]}, |
115 | {tag:'div', cls:'confirm', children:[ | 112 | {tag:'div', cls:'confirm', children:[ |
116 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, | 113 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, |
117 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} | 114 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} |
118 | ]} | 115 | ]} |
119 | ]}, | 116 | ]}, |
120 | {tag:'div', cls:'clear'}, | 117 | {tag:'div', cls:'clear'}, |
121 | {tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[ | 118 | {tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[ |
122 | {tag:'span', html:"change passphrase"} | 119 | {tag:'span', html:"change passphrase"} |
123 | ]}, | 120 | ]}, |
124 | 121 | ||
125 | {tag:'h3', cls:'manageOTP', html:"Manage One-Time Passphrases"}, | 122 | {tag:'h3', cls:'manageOTP', html:"Manage One-Time Passphrases"}, |
126 | {} | 123 | {} |
127 | ]}, | 124 | ]}, |
128 | {tag:'li', id:this.getId('preferencesPanel'), children:[ | 125 | {tag:'li', id:this.getId('preferencesPanel'), children:[ |
129 | {tag:'h3', html:"-- Preferences --"} | 126 | {tag:'h3', html:"-- Preferences --"} |
130 | ]}, | 127 | ]}, |
131 | {tag:'li', id:this.getId('loginHistoryPanel'), children:[ | 128 | {tag:'li', id:this.getId('loginHistoryPanel'), children:[ |
132 | {tag:'h3', html:"-- Login History --"} | 129 | {tag:'h3', html:"-- Login History --"} |
133 | ]} | 130 | ]} |
134 | ]} | 131 | ]} |
135 | ]} | 132 | ]} |
136 | ]} | 133 | ]} |
137 | ]}, | 134 | ]}, |
138 | {tag:'div', cls:'footer'} | 135 | {tag:'div', cls:'footer'} |
139 | ]); | 136 | ]); |
140 | 137 | ||
141 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 138 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
142 | }, | 139 | }, |
143 | 140 | ||
144 | //------------------------------------------------------------------------- | 141 | //------------------------------------------------------------------------- |
145 | 142 | ||
146 | 143 | ||
147 | __syntaxFix__: "syntax fix" | 144 | __syntaxFix__: "syntax fix" |
148 | }); | 145 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js index 67247df..3b3c8b4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js | |||
@@ -1,78 +1,75 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.AppPage = function(args) { | 28 | Clipperz.PM.UI.Web.Components.AppPage = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._element = args.element || null; | 32 | this._element = args.element || null; |
36 | 33 | ||
37 | this._slots = { | 34 | this._slots = { |
38 | 'cardGrid' : this.getId('cardGrid'), | 35 | 'cardGrid' : this.getId('cardGrid'), |
39 | // 'directLoginGrid' : this.getId('directLoginGrid'), | 36 | // 'directLoginGrid' : this.getId('directLoginGrid'), |
40 | 'accountPanel': this.getId('accountPanel'), | 37 | 'accountPanel': this.getId('accountPanel'), |
41 | 'dataPanel': this.getId('dataPanel'), | 38 | 'dataPanel': this.getId('dataPanel'), |
42 | 'toolsPanel': this.getId('toolsPanel'), | 39 | 'toolsPanel': this.getId('toolsPanel'), |
43 | 'userInfoBox': this.getId('userInfoBox'), | 40 | 'userInfoBox': this.getId('userInfoBox'), |
44 | 'tabSidePanel': this.getId('tabSidePanel') | 41 | 'tabSidePanel': this.getId('tabSidePanel') |
45 | }; | 42 | }; |
46 | 43 | ||
47 | return this; | 44 | return this; |
48 | } | 45 | } |
49 | 46 | ||
50 | //============================================================================= | 47 | //============================================================================= |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AppPage, Clipperz.PM.UI.Common.Components.BaseComponent, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AppPage, Clipperz.PM.UI.Common.Components.BaseComponent, { |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'toString': function () { | 53 | 'toString': function () { |
57 | return "Clipperz.PM.UI.Web.Components.AppPage component"; | 54 | return "Clipperz.PM.UI.Web.Components.AppPage component"; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'renderSelf': function(/*aContainer, aPosition*/) { | 59 | 'renderSelf': function(/*aContainer, aPosition*/) { |
63 | this.append(this.element(), {tag:'div', id:this.getId('userInfoBox'), cls:'userInfoBox'}); | 60 | this.append(this.element(), {tag:'div', id:this.getId('userInfoBox'), cls:'userInfoBox'}); |
64 | this.append(this.element(), {tag:'div', id:this.getId('sidePanels'), cls:'sidePanels'}); | 61 | this.append(this.element(), {tag:'div', id:this.getId('sidePanels'), cls:'sidePanels'}); |
65 | this.append(this.getId('sidePanels'),{tag:'div', id:this.getId('tabSidePanel'), cls:'tabSidePanel', children:[]}); | 62 | this.append(this.getId('sidePanels'),{tag:'div', id:this.getId('tabSidePanel'), cls:'tabSidePanel', children:[]}); |
66 | 63 | ||
67 | this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); | 64 | this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); |
68 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); | 65 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); |
69 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('directLoginGrid'), cls:'gridComponent directLoginGrid'}); | 66 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('directLoginGrid'), cls:'gridComponent directLoginGrid'}); |
70 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('accountPanel'), cls:'otherPanel'}); | 67 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('accountPanel'), cls:'otherPanel'}); |
71 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('dataPanel'), cls:'otherPanel'}); | 68 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('dataPanel'), cls:'otherPanel'}); |
72 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('toolsPanel'), cls:'otherPanel'}); | 69 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('toolsPanel'), cls:'otherPanel'}); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | __syntaxFix__: "syntax fix" | 74 | __syntaxFix__: "syntax fix" |
78 | }); | 75 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js index 42a6052..1835ca9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js | |||
@@ -1,109 +1,106 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.BookmarkletComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.BookmarkletComponent.superclass.constructor.apply(this, arguments); |
35 | MochiKit.Signal.connect(Clipperz.PM.Strings.Languages, 'switchLanguage', this, 'updateBookmarkletURLs'); | 32 | MochiKit.Signal.connect(Clipperz.PM.Strings.Languages, 'switchLanguage', this, 'updateBookmarkletURLs'); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.BookmarkletComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.BookmarkletComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
43 | 40 | ||
44 | //------------------------------------------------------------------------- | 41 | //------------------------------------------------------------------------- |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.BookmarkletComponent component"; | 44 | return "Clipperz.PM.UI.Web.Components.BookmarkletComponent component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'renderSelf': function() { | 49 | 'renderSelf': function() { |
53 | // var bookmarkletUrl; | 50 | // var bookmarkletUrl; |
54 | // | 51 | // |
55 | // if (Clipperz_IEisBroken == true) { | 52 | // if (Clipperz_IEisBroken == true) { |
56 | // bookmarkletUrl = bookmarklet_ie; | 53 | // bookmarkletUrl = bookmarklet_ie; |
57 | // } else { | 54 | // } else { |
58 | /// bookmarkletUrl = bookmarklet; | 55 | /// bookmarkletUrl = bookmarklet; |
59 | // bookmarkletUrl = Clipperz.PM.Strings['bookmarklet']; | 56 | // bookmarkletUrl = Clipperz.PM.Strings['bookmarklet']; |
60 | // } | 57 | // } |
61 | 58 | ||
62 | this.append(this.element(), {tag:'div', cls:'bookmarklet', children: [ | 59 | this.append(this.element(), {tag:'div', cls:'bookmarklet', children: [ |
63 | {tag:'div', id:this.getId('linkBlock'), cls:'bookmarklet_link', children:[ | 60 | {tag:'div', id:this.getId('linkBlock'), cls:'bookmarklet_link', children:[ |
64 | // {tag:'a', id:this.getId('link'), href:bookmarkletUrl, children:[ | 61 | // {tag:'a', id:this.getId('link'), href:bookmarkletUrl, children:[ |
65 | {tag:'a', id:this.getId('link'), href:'#', children:[ | 62 | {tag:'a', id:this.getId('link'), href:'#', children:[ |
66 | {tag:'div', cls:'icon'}, | 63 | {tag:'div', cls:'icon'}, |
67 | {tag:'div', cls:'text', children:[ | 64 | {tag:'div', cls:'text', children:[ |
68 | {tag:'span', html:"add to Clipperz"} | 65 | {tag:'span', html:"add to Clipperz"} |
69 | ]} | 66 | ]} |
70 | ]} | 67 | ]} |
71 | ]} | 68 | ]} |
72 | ]}); | 69 | ]}); |
73 | 70 | ||
74 | new Clipperz.PM.UI.Common.Components.Tooltip({ | 71 | new Clipperz.PM.UI.Common.Components.Tooltip({ |
75 | element:this.getElement('linkBlock'), | 72 | element:this.getElement('linkBlock'), |
76 | text: "Drag and drop the \"add to Clipperz\" link above to the bookmark bar.", | 73 | text: "Drag and drop the \"add to Clipperz\" link above to the bookmark bar.", |
77 | position:'BELOW' | 74 | position:'BELOW' |
78 | }); | 75 | }); |
79 | 76 | ||
80 | MochiKit.Signal.connect(this.getId('link'), 'onclick', this, 'handleOnclick'); | 77 | MochiKit.Signal.connect(this.getId('link'), 'onclick', this, 'handleOnclick'); |
81 | this.updateBookmarkletURLs(); | 78 | this.updateBookmarkletURLs(); |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'handleOnclick': function (anEvent) { | 83 | 'handleOnclick': function (anEvent) { |
87 | anEvent.preventDefault(); | 84 | anEvent.preventDefault(); |
88 | 85 | ||
89 | Clipperz.log("BOOKMARKLET CLICK"); | 86 | Clipperz.log("BOOKMARKLET CLICK"); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'updateBookmarkletURLs': function () { | 91 | 'updateBookmarkletURLs': function () { |
95 | var bookmarkletUrl; | 92 | var bookmarkletUrl; |
96 | 93 | ||
97 | if (Clipperz_IEisBroken == true) { | 94 | if (Clipperz_IEisBroken == true) { |
98 | bookmarkletUrl = bookmarklet_ie; | 95 | bookmarkletUrl = bookmarklet_ie; |
99 | } else { | 96 | } else { |
100 | // bookmarkletUrl = bookmarklet; | 97 | // bookmarkletUrl = bookmarklet; |
101 | bookmarkletUrl = Clipperz.PM.Strings.getValue('bookmarklet'); | 98 | bookmarkletUrl = Clipperz.PM.Strings.getValue('bookmarklet'); |
102 | } | 99 | } |
103 | 100 | ||
104 | this.getElement('link').href = bookmarkletUrl; | 101 | this.getElement('link').href = bookmarkletUrl; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | __syntaxFix__: "syntax fix" | 105 | __syntaxFix__: "syntax fix" |
109 | }); | 106 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js index e3238ca..af33d85 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._tabPanelControllerConfiguration = { | 35 | this._tabPanelControllerConfiguration = { |
39 | 'DETAILS': { | 36 | 'DETAILS': { |
40 | tab:'detailTab', | 37 | tab:'detailTab', |
41 | panel:'detailTabpanel' | 38 | panel:'detailTabpanel' |
42 | }, | 39 | }, |
43 | 'DIRECT_LOGINS': { | 40 | 'DIRECT_LOGINS': { |
44 | tab:'directLoginTab', | 41 | tab:'directLoginTab', |
45 | panel:'directLoginTabpanel' | 42 | panel:'directLoginTabpanel' |
46 | }, | 43 | }, |
47 | 'SHARING': { | 44 | 'SHARING': { |
48 | tab:'sharingTab', | 45 | tab:'sharingTab', |
49 | panel:'sharingTabpanel' | 46 | panel:'sharingTabpanel' |
50 | } | 47 | } |
51 | }; | 48 | }; |
52 | 49 | ||
53 | this._tooltips = null; | 50 | this._tooltips = null; |
54 | 51 | ||
55 | this._isSavingEnabled = false; | 52 | this._isSavingEnabled = false; |
56 | this._hintMode = 'OFF'; //'ON' | 53 | this._hintMode = 'OFF'; //'ON' |
57 | 54 | ||
58 | this._fieldComponents = {}; | 55 | this._fieldComponents = {}; |
59 | this._directLoginComponents = {}; | 56 | this._directLoginComponents = {}; |
60 | 57 | ||
61 | this._displayMode = 'fixed'; //'scrollable'; | 58 | this._displayMode = 'fixed'; //'scrollable'; |
62 | 59 | ||
63 | return this; | 60 | return this; |
64 | } | 61 | } |
65 | 62 | ||
66 | //============================================================================= | 63 | //============================================================================= |
67 | 64 | ||
68 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 65 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 68 | ||
72 | 'toString': function () { | 69 | 'toString': function () { |
73 | return "Clipperz.PM.UI.Web.Components.CardDialogComponent component"; | 70 | return "Clipperz.PM.UI.Web.Components.CardDialogComponent component"; |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'tabPanelController': function () { | 75 | 'tabPanelController': function () { |
79 | if (this._tabPanelController == null) { | 76 | if (this._tabPanelController == null) { |
80 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ | 77 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ |
81 | component:this, | 78 | component:this, |
82 | configuration:this._tabPanelControllerConfiguration | 79 | configuration:this._tabPanelControllerConfiguration |
83 | }); | 80 | }); |
84 | 81 | ||
85 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') | 82 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') |
86 | } | 83 | } |
87 | 84 | ||
88 | return this._tabPanelController; | 85 | return this._tabPanelController; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'renderSelf': function() { | 90 | 'renderSelf': function() { |
94 | this.append(this.element(), {tag:'div', cls:'CardDialog mainDialog loading', id:this.getId('panel'), children: [ | 91 | this.append(this.element(), {tag:'div', cls:'CardDialog mainDialog loading', id:this.getId('panel'), children: [ |
95 | {tag:'form', id:this.getId('form'), children:[ | 92 | {tag:'form', id:this.getId('form'), children:[ |
96 | // {tag:'input', type:'text', id:this.getId('hidden'), cls:'hidden'}, | 93 | // {tag:'input', type:'text', id:this.getId('hidden'), cls:'hidden'}, |
97 | {tag:'div', cls:'header', children:[ | 94 | {tag:'div', cls:'header', children:[ |
98 | {tag:'div', cls:'title', children:[ | 95 | {tag:'div', cls:'title', children:[ |
99 | {tag:'input', type:'text', id:this.getId('title')} | 96 | {tag:'input', type:'text', id:this.getId('title')} |
100 | ]} | 97 | ]} |
101 | ]}, | 98 | ]}, |
102 | {tag:'div', id:this.getId('body'), cls:'body', children:[ | 99 | {tag:'div', id:this.getId('body'), cls:'body', children:[ |
103 | {tag:'div', cls:'tabs', children:[ | 100 | {tag:'div', cls:'tabs', children:[ |
104 | {tag:'ul', cls:'tabs', children:[ | 101 | {tag:'ul', cls:'tabs', children:[ |
105 | {tag:'li', id:this.getId('detailTab'), children:[{tag:'span', html:"details"}]}, | 102 | {tag:'li', id:this.getId('detailTab'), children:[{tag:'span', html:"details"}]}, |
106 | {tag:'li', id:this.getId('directLoginTab'), children:[ | 103 | {tag:'li', id:this.getId('directLoginTab'), children:[ |
107 | {tag:'span', html:"direct logins"}//, | 104 | {tag:'span', html:"direct logins"}//, |
108 | // {tag:'div', id:this.getId('addDirectLoginButton'), cls:'addDirectLoginButton', children:[ | 105 | // {tag:'div', id:this.getId('addDirectLoginButton'), cls:'addDirectLoginButton', children:[ |
109 | // {tag:'span', html:"+"} | 106 | // {tag:'span', html:"+"} |
110 | // ]} | 107 | // ]} |
111 | ]}, | 108 | ]}, |
112 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'span', html:"sharing"}]} | 109 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'span', html:"sharing"}]} |
113 | ]} | 110 | ]} |
114 | ]}, | 111 | ]}, |
115 | {tag:'div', cls:'tabPanels', children:[ | 112 | {tag:'div', cls:'tabPanels', children:[ |
116 | {tag:'ul', cls:'tabPanels', children:[ | 113 | {tag:'ul', cls:'tabPanels', children:[ |
117 | {tag:'li', id:this.getId('detailTabpanel'), cls:'tabPanel', children:[ | 114 | {tag:'li', id:this.getId('detailTabpanel'), cls:'tabPanel', children:[ |
118 | {tag:'div', id:this.getId('recordFields'), children:[ | 115 | {tag:'div', id:this.getId('recordFields'), children:[ |
119 | {tag:'table', cls:'fields', cellpadding:'0', id:this.getId('fieldTable'), cellspacing:'0', children:[ | 116 | {tag:'table', cls:'fields', cellpadding:'0', id:this.getId('fieldTable'), cellspacing:'0', children:[ |
120 | {tag:'thead', children:[ | 117 | {tag:'thead', children:[ |
121 | {tag:'tr', children:[ | 118 | {tag:'tr', children:[ |
122 | {tag:'th', cls:'fieldStateTH',html:""}, | 119 | {tag:'th', cls:'fieldStateTH',html:""}, |
123 | {tag:'th', cls:'fieldLabelTH',html:"label"}, | 120 | {tag:'th', cls:'fieldLabelTH',html:"label"}, |
124 | {tag:'th', cls:'fieldLockTH',html:""}, | 121 | {tag:'th', cls:'fieldLockTH',html:""}, |
125 | {tag:'th', cls:'fieldValueTH',html:"value"}, | 122 | {tag:'th', cls:'fieldValueTH',html:"value"}, |
126 | {tag:'th', cls:'fieldActionTH',html:""}, | 123 | {tag:'th', cls:'fieldActionTH',html:""}, |
127 | {tag:'th', cls:'fieldDeleteTH',html:""} | 124 | {tag:'th', cls:'fieldDeleteTH',html:""} |
128 | ]} | 125 | ]} |
129 | ]}, | 126 | ]}, |
130 | {tag:'tfoot'}, | 127 | {tag:'tfoot'}, |
131 | {tag:'tbody', id:this.getId('tableBody'), children:[ | 128 | {tag:'tbody', id:this.getId('tableBody'), children:[ |
132 | {tag:'tr', id:this.getId('newFieldTR'), cls:'newFieldTR', children:[ | 129 | {tag:'tr', id:this.getId('newFieldTR'), cls:'newFieldTR', children:[ |
133 | {tag:'td', cls:'fieldState'}, | 130 | {tag:'td', cls:'fieldState'}, |
134 | {tag:'td', cls:'fieldLabel', children:[ | 131 | {tag:'td', cls:'fieldLabel', children:[ |
135 | {tag:'input', cls:'label', id:this.getId('newFieldLabel')} | 132 | {tag:'input', cls:'label', id:this.getId('newFieldLabel')} |
136 | ]}, | 133 | ]}, |
137 | {tag:'td', cls:'fieldLock', children:[ | 134 | {tag:'td', cls:'fieldLock', children:[ |
138 | {tag:'div', cls:'unlocked', id:this.getId('newFieldIsLocked')} | 135 | {tag:'div', cls:'unlocked', id:this.getId('newFieldIsLocked')} |
139 | ]}, | 136 | ]}, |
140 | {tag:'td', cls:'fieldValue', children:[ | 137 | {tag:'td', cls:'fieldValue', children:[ |
141 | {tag:'div', cls:'unlocked', id:this.getId('newFieldValueWrapper'), children:[ | 138 | {tag:'div', cls:'unlocked', id:this.getId('newFieldValueWrapper'), children:[ |
142 | {tag:'input',type:'text', cls:'value', id:this.getId('newFieldValue')} | 139 | {tag:'input',type:'text', cls:'value', id:this.getId('newFieldValue')} |
143 | ]} | 140 | ]} |
144 | ]}, | 141 | ]}, |
145 | {tag:'td', cls:'fieldAction', children:[ | 142 | {tag:'td', cls:'fieldAction', children:[ |
146 | {tag:'div', html:' '} | 143 | {tag:'div', html:' '} |
147 | ]}, | 144 | ]}, |
148 | {tag:'td', cls:'fieldAddDelete', children:[ | 145 | {tag:'td', cls:'fieldAddDelete', children:[ |
149 | {tag:'div', cls:'new', children:[ | 146 | {tag:'div', cls:'new', children:[ |
150 | {tag:'span', children:[ | 147 | {tag:'span', children:[ |
151 | {tag:'a', href:'#', id:this.getId('newFieldAddButton'), html:"add"} | 148 | {tag:'a', href:'#', id:this.getId('newFieldAddButton'), html:"add"} |
152 | ]} | 149 | ]} |
153 | ]} | 150 | ]} |
154 | ]} | 151 | ]} |
155 | ]} | 152 | ]} |
156 | ]} | 153 | ]} |
157 | ]} | 154 | ]} |
158 | ]}, | 155 | ]}, |
159 | {tag:'div', cls:'notes', children:[ | 156 | {tag:'div', cls:'notes', children:[ |
160 | {tag:'div', children:[ | 157 | {tag:'div', children:[ |
161 | {tag:'textarea', id:this.getId('recordNote'), value:""} | 158 | {tag:'textarea', id:this.getId('recordNote'), value:""} |
162 | ]} | 159 | ]} |
163 | ]} | 160 | ]} |
164 | ]}, | 161 | ]}, |
165 | {tag:'li', id:this.getId('directLoginTabpanel'), cls:'tabPanel', children:[ | 162 | {tag:'li', id:this.getId('directLoginTabpanel'), cls:'tabPanel', children:[ |
166 | {tag:'div', id:this.getId('directLoginsComponentContainer'), cls:'directLoginsComponentContainer', children:[ | 163 | {tag:'div', id:this.getId('directLoginsComponentContainer'), cls:'directLoginsComponentContainer', children:[ |
167 | {tag:'div', id:this.getId('directLogins'), cls:'directLogins', children:[ | 164 | {tag:'div', id:this.getId('directLogins'), cls:'directLogins', children:[ |
168 | {tag:'div', id:this.getId('addNewDirectLoginSplash'), cls:'addNewDirectLoginSplash', children:[ | 165 | {tag:'div', id:this.getId('addNewDirectLoginSplash'), cls:'addNewDirectLoginSplash', children:[ |
169 | {tag:'h3', html:"Here you can add a Direct Login for this card: instant access to your favorit website!"}, | 166 | {tag:'h3', html:"Here you can add a Direct Login for this card: instant access to your favorit website!"}, |
170 | {tag:'a', href:'#', id:this.getId('addNewDirectLoginSplashButton'), children:[{tag:'span', html:"Add Direct Login"}]} | 167 | {tag:'a', href:'#', id:this.getId('addNewDirectLoginSplashButton'), children:[{tag:'span', html:"Add Direct Login"}]} |
171 | ]}, | 168 | ]}, |
172 | {tag:'div', id:this.getId('directLoginsList')}, | 169 | {tag:'div', id:this.getId('directLoginsList')}, |
173 | {tag:'div', cls:'addDirectLoginListItem', id:this.getId('addDirectLoginListItem'), children:[{tag:'a', href:'#', id:this.getId('addNewDirectLoginListItemButton'), children:[{tag:'span', html:"Add Direct Login"}]}]} | 170 | {tag:'div', cls:'addDirectLoginListItem', id:this.getId('addDirectLoginListItem'), children:[{tag:'a', href:'#', id:this.getId('addNewDirectLoginListItemButton'), children:[{tag:'span', html:"Add Direct Login"}]}]} |
174 | ]}, | 171 | ]}, |
175 | {tag:'div', id:this.getId('directLoginEditDetail'), cls:'directLoginEditDetail'} | 172 | {tag:'div', id:this.getId('directLoginEditDetail'), cls:'directLoginEditDetail'} |
176 | ]} | 173 | ]} |
177 | ]}, | 174 | ]}, |
178 | {tag:'li', id:this.getId('sharingTabpanel'), cls:'tabPanel', children:[ | 175 | {tag:'li', id:this.getId('sharingTabpanel'), cls:'tabPanel', children:[ |
179 | {tag:'h2', html:"Coming soon!"} | 176 | {tag:'h2', html:"Coming soon!"} |
180 | ]} | 177 | ]} |
181 | ]} | 178 | ]} |
182 | ]}, | 179 | ]}, |
183 | {tag:'div', cls:'mask', children:[ | 180 | {tag:'div', cls:'mask', children:[ |
184 | {tag:'div', id:this.getId('progress'), children:[ | 181 | {tag:'div', id:this.getId('progress'), children:[ |
185 | {tag:'h3', id:this.getId('progressDescription'), cls:'progressDescription', html:"Loading"}, | 182 | {tag:'h3', id:this.getId('progressDescription'), cls:'progressDescription', html:"Loading"}, |
186 | {tag:'div', id:this.getId('progressBar')} | 183 | {tag:'div', id:this.getId('progressBar')} |
187 | ]}, | 184 | ]}, |
188 | {tag:'div', id:this.getId('error'), cls:'error', children:[ | 185 | {tag:'div', id:this.getId('error'), cls:'error', children:[ |
189 | {tag:'div', cls:'img'}, | 186 | {tag:'div', cls:'img'}, |
190 | {tag:'p', id:this.getId('errorMessage')} | 187 | {tag:'p', id:this.getId('errorMessage')} |
191 | ]} | 188 | ]} |
192 | ]} | 189 | ]} |
193 | ]}, | 190 | ]}, |
194 | {tag:'div', cls:'footer', children:[ | 191 | {tag:'div', cls:'footer', children:[ |
195 | {tag:'div', cls:'buttonArea', children:[ | 192 | {tag:'div', cls:'buttonArea', children:[ |
196 | {tag:'div', cls:'cancel', id:this.getId('cancelButton'), html:"cancel"}, | 193 | {tag:'div', cls:'cancel', id:this.getId('cancelButton'), html:"cancel"}, |
197 | {tag:'div', cls:'save disabled', id:this.getId('saveButton'), html:"save"} | 194 | {tag:'div', cls:'save disabled', id:this.getId('saveButton'), html:"save"} |
198 | ]} | 195 | ]} |
199 | ]} | 196 | ]} |
200 | ]} | 197 | ]} |
201 | ]}); | 198 | ]}); |
202 | 199 | ||
203 | 200 | ||
204 | this.insertAllTooltips(); | 201 | this.insertAllTooltips(); |
205 | 202 | ||
206 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 203 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
207 | 204 | ||
208 | this.tabPanelController().setup({selected:'DETAILS'}); | 205 | this.tabPanelController().setup({selected:'DETAILS'}); |
209 | // this.tabPanelController().setup({selected:'DIRECT_LOGINS'}); | 206 | // this.tabPanelController().setup({selected:'DIRECT_LOGINS'}); |
210 | 207 | ||
211 | MochiKit.Style.hideElement(this.getId('error')); | 208 | MochiKit.Style.hideElement(this.getId('error')); |
212 | MochiKit.Style.hideElement(this.getElement('directLoginEditDetail')); | 209 | MochiKit.Style.hideElement(this.getElement('directLoginEditDetail')); |
213 | MochiKit.Style.hideElement(this.getElement('addDirectLoginListItem')); | 210 | MochiKit.Style.hideElement(this.getElement('addDirectLoginListItem')); |
214 | this.plumbDetailsPanel(); | 211 | this.plumbDetailsPanel(); |
215 | 212 | ||
216 | MochiKit.Signal.connect(this.getId('cancelButton'), 'onclick', this, 'handleCancelEvent'); | 213 | MochiKit.Signal.connect(this.getId('cancelButton'), 'onclick', this, 'handleCancelEvent'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js index 126c5b1..2e61f5f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js | |||
@@ -1,182 +1,179 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._faviconComponent = null; | 34 | this._faviconComponent = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent component"; | 46 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'reference': function () { | 51 | 'reference': function () { |
55 | return this._reference; | 52 | return this._reference; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'renderSelf': function() { | 57 | 'renderSelf': function() { |
61 | //console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf"); | 58 | //console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf"); |
62 | this.append(this.element(), [ | 59 | this.append(this.element(), [ |
63 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ | 60 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ |
64 | {tag:'img', cls:'favicon', id:this.getId('favicon')} | 61 | {tag:'img', cls:'favicon', id:this.getId('favicon')} |
65 | ]}, | 62 | ]}, |
66 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ | 63 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ |
67 | {tag:'input', id:this.getId('label'), type:'text'} | 64 | {tag:'input', id:this.getId('label'), type:'text'} |
68 | ]}, | 65 | ]}, |
69 | {tag:'div', cls:'open', children:[ | 66 | {tag:'div', cls:'open', children:[ |
70 | {tag:'span', children:[ | 67 | {tag:'span', children:[ |
71 | {tag:'a', href:'open', id:this.getId('open'), html:' '} | 68 | {tag:'a', href:'open', id:this.getId('open'), html:' '} |
72 | ]} | 69 | ]} |
73 | ]}, | 70 | ]}, |
74 | {tag:'div', cls:'edit', children:[ | 71 | {tag:'div', cls:'edit', children:[ |
75 | {tag:'span', children:[ | 72 | {tag:'span', children:[ |
76 | {tag:'a', href:'edit', id:this.getId('edit'), html:"edit"} | 73 | {tag:'a', href:'edit', id:this.getId('edit'), html:"edit"} |
77 | ]} | 74 | ]} |
78 | ]}, | 75 | ]}, |
79 | {tag:'div', cls:'delete', children:[ | 76 | {tag:'div', cls:'delete', children:[ |
80 | {tag:'span', children:[ | 77 | {tag:'span', children:[ |
81 | {tag:'a', href:'delete', id:this.getId('delete'), html:"delete"} | 78 | {tag:'a', href:'delete', id:this.getId('delete'), html:"delete"} |
82 | ]} | 79 | ]} |
83 | ]} | 80 | ]} |
84 | /* | 81 | /* |
85 | {tag:'td', cls:'fieldState'}, | 82 | {tag:'td', cls:'fieldState'}, |
86 | {tag:'td', cls:'fieldLabel', children:[ | 83 | {tag:'td', cls:'fieldLabel', children:[ |
87 | {tag:'input', cls:'label', id:this.getId('label')} | 84 | {tag:'input', cls:'label', id:this.getId('label')} |
88 | ]}, | 85 | ]}, |
89 | {tag:'td', cls:'fieldLock', children:[ | 86 | {tag:'td', cls:'fieldLock', children:[ |
90 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} | 87 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} |
91 | ]}, | 88 | ]}, |
92 | {tag:'td', cls:'fieldValue', children:[ | 89 | {tag:'td', cls:'fieldValue', children:[ |
93 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ | 90 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ |
94 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} | 91 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} |
95 | ]} | 92 | ]} |
96 | ]}, | 93 | ]}, |
97 | {tag:'td', cls:'fieldAddDelete', children:[ | 94 | {tag:'td', cls:'fieldAddDelete', children:[ |
98 | {tag:'div', cls:'delete', children:[ | 95 | {tag:'div', cls:'delete', children:[ |
99 | {tag:'span', children:[ | 96 | {tag:'span', children:[ |
100 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} | 97 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} |
101 | ]} | 98 | ]} |
102 | ]} | 99 | ]} |
103 | ]} | 100 | ]} |
104 | */ | 101 | */ |
105 | ]); | 102 | ]); |
106 | 103 | ||
107 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 104 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
108 | MochiKit.Signal.connect(this.getId('open'), 'onclick',this, 'openDirectLogin'); | 105 | MochiKit.Signal.connect(this.getId('open'), 'onclick',this, 'openDirectLogin'); |
109 | MochiKit.Signal.connect(this.getId('edit'), 'onclick',this, 'editDirectLogin'); | 106 | MochiKit.Signal.connect(this.getId('edit'), 'onclick',this, 'editDirectLogin'); |
110 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteDirectLogin'); | 107 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteDirectLogin'); |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //------------------------------------------------------------------------- | 110 | //------------------------------------------------------------------------- |
114 | 111 | ||
115 | 'shouldShowElementWhileRendering': function () { | 112 | 'shouldShowElementWhileRendering': function () { |
116 | return false; | 113 | return false; |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //------------------------------------------------------------------------- | 116 | //------------------------------------------------------------------------- |
120 | 117 | ||
121 | 'faviconComponent': function () { | 118 | 'faviconComponent': function () { |
122 | if (this._faviconComponent == null) { | 119 | if (this._faviconComponent == null) { |
123 | //console.log("created the FAVICON component"); | 120 | //console.log("created the FAVICON component"); |
124 | this._faviconComponent = new Clipperz.PM.UI.Common.Components.FaviconComponent({element:this.getId('favicon')}); | 121 | this._faviconComponent = new Clipperz.PM.UI.Common.Components.FaviconComponent({element:this.getId('favicon')}); |
125 | } | 122 | } |
126 | 123 | ||
127 | return this._faviconComponent; | 124 | return this._faviconComponent; |
128 | }, | 125 | }, |
129 | 126 | ||
130 | //========================================================================= | 127 | //========================================================================= |
131 | 128 | ||
132 | 'label': function () { | 129 | 'label': function () { |
133 | return this.getElement('label').value; | 130 | return this.getElement('label').value; |
134 | }, | 131 | }, |
135 | 132 | ||
136 | 'setLabel': function (aValue) { | 133 | 'setLabel': function (aValue) { |
137 | this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); | 134 | this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); |
138 | }, | 135 | }, |
139 | 136 | ||
140 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
141 | 138 | ||
142 | 'favicon': function () { | 139 | 'favicon': function () { |
143 | // return this.getElement('favicon').src; | 140 | // return this.getElement('favicon').src; |
144 | return this.faviconComponent().src(); | 141 | return this.faviconComponent().src(); |
145 | }, | 142 | }, |
146 | 143 | ||
147 | 'setFavicon': function (aValue) { | 144 | 'setFavicon': function (aValue) { |
148 | // this.getElement('favicon').src = Clipperz.Base.sanitizeString(aValue); | 145 | // this.getElement('favicon').src = Clipperz.Base.sanitizeString(aValue); |
149 | this.faviconComponent().setSrc(Clipperz.Base.sanitizeString(aValue)); | 146 | this.faviconComponent().setSrc(Clipperz.Base.sanitizeString(aValue)); |
150 | }, | 147 | }, |
151 | 148 | ||
152 | //========================================================================= | 149 | //========================================================================= |
153 | 150 | ||
154 | 'openDirectLogin': function (anEvent) { | 151 | 'openDirectLogin': function (anEvent) { |
155 | anEvent.preventDefault(); | 152 | anEvent.preventDefault(); |
156 | 153 | ||
157 | MochiKit.Signal.signal(this, 'openDirectLogin', this.reference()); | 154 | MochiKit.Signal.signal(this, 'openDirectLogin', this.reference()); |
158 | }, | 155 | }, |
159 | 156 | ||
160 | //------------------------------------------------------------------------- | 157 | //------------------------------------------------------------------------- |
161 | 158 | ||
162 | 'editDirectLogin': function (anEvent) { | 159 | 'editDirectLogin': function (anEvent) { |
163 | anEvent.preventDefault(); | 160 | anEvent.preventDefault(); |
164 | 161 | ||
165 | MochiKit.Signal.signal(this, 'editDirectLogin', this.reference()); | 162 | MochiKit.Signal.signal(this, 'editDirectLogin', this.reference()); |
166 | //console.log("EDIT DIRECT LOGIN"); | 163 | //console.log("EDIT DIRECT LOGIN"); |
167 | }, | 164 | }, |
168 | 165 | ||
169 | //------------------------------------------------------------------------- | 166 | //------------------------------------------------------------------------- |
170 | 167 | ||
171 | 'deleteDirectLogin': function (anEvent) { | 168 | 'deleteDirectLogin': function (anEvent) { |
172 | anEvent.preventDefault(); | 169 | anEvent.preventDefault(); |
173 | 170 | ||
174 | MochiKit.Signal.signal(this, 'deleteDirectLogin', this.reference()); | 171 | MochiKit.Signal.signal(this, 'deleteDirectLogin', this.reference()); |
175 | //console.log("DELETE DIRECT LOGIN"); | 172 | //console.log("DELETE DIRECT LOGIN"); |
176 | }, | 173 | }, |
177 | 174 | ||
178 | 175 | ||
179 | 176 | ||
180 | //========================================================================= | 177 | //========================================================================= |
181 | __syntaxFix__: "syntax fix" | 178 | __syntaxFix__: "syntax fix" |
182 | }); | 179 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js index c1a7c13..b58062c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js | |||
@@ -1,190 +1,187 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._actionType = null; | 34 | this._actionType = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent component"; | 46 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'renderSelf': function() { | 51 | 'renderSelf': function() { |
55 | this.append(this.element(), [ | 52 | this.append(this.element(), [ |
56 | {tag:'td', cls:'fieldState'}, | 53 | {tag:'td', cls:'fieldState'}, |
57 | {tag:'td', cls:'fieldLabel', children:[ | 54 | {tag:'td', cls:'fieldLabel', children:[ |
58 | {tag:'input', cls:'label', id:this.getId('label')} | 55 | {tag:'input', cls:'label', id:this.getId('label')} |
59 | ]}, | 56 | ]}, |
60 | {tag:'td', cls:'fieldLock', children:[ | 57 | {tag:'td', cls:'fieldLock', children:[ |
61 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} | 58 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} |
62 | ]}, | 59 | ]}, |
63 | {tag:'td', cls:'fieldValue', children:[ | 60 | {tag:'td', cls:'fieldValue', children:[ |
64 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ | 61 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ |
65 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} | 62 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} |
66 | ]} | 63 | ]} |
67 | ]}, | 64 | ]}, |
68 | {tag:'td', cls:'fieldAction', children:[ | 65 | {tag:'td', cls:'fieldAction', children:[ |
69 | {tag:'a', href:'#', id:this.getId('actionLink'), html:' '} | 66 | {tag:'a', href:'#', id:this.getId('actionLink'), html:' '} |
70 | ]}, | 67 | ]}, |
71 | {tag:'td', cls:'fieldAddDelete', children:[ | 68 | {tag:'td', cls:'fieldAddDelete', children:[ |
72 | {tag:'div', cls:'delete', children:[ | 69 | {tag:'div', cls:'delete', children:[ |
73 | {tag:'span', children:[ | 70 | {tag:'span', children:[ |
74 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} | 71 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} |
75 | ]} | 72 | ]} |
76 | ]} | 73 | ]} |
77 | ]} | 74 | ]} |
78 | ]); | 75 | ]); |
79 | 76 | ||
80 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 77 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
81 | MochiKit.Signal.connect(this.getId('isHidden'), 'onclick',this, 'toggleIsHidden'); | 78 | MochiKit.Signal.connect(this.getId('isHidden'), 'onclick',this, 'toggleIsHidden'); |
82 | MochiKit.Signal.connect(this.getId('value'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 79 | MochiKit.Signal.connect(this.getId('value'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
83 | MochiKit.Signal.connect(this.getId('actionLink'), 'onclick',this, 'handleActionLink'); | 80 | MochiKit.Signal.connect(this.getId('actionLink'), 'onclick',this, 'handleActionLink'); |
84 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteField'); | 81 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteField'); |
85 | // MochiKit.Signal.connect(this.getId('delete'), 'onclick',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'deleteField', this.reference())); | 82 | // MochiKit.Signal.connect(this.getId('delete'), 'onclick',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'deleteField', this.reference())); |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'shouldShowElementWhileRendering': function () { | 87 | 'shouldShowElementWhileRendering': function () { |
91 | return false; | 88 | return false; |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //========================================================================= | 91 | //========================================================================= |
95 | 92 | ||
96 | 'reference': function () { | 93 | 'reference': function () { |
97 | return this._reference; | 94 | return this._reference; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //========================================================================= | 97 | //========================================================================= |
101 | 98 | ||
102 | 'label': function () { | 99 | 'label': function () { |
103 | return this.getElement('label').value; | 100 | return this.getElement('label').value; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'setLabel': function (aValue) { | 103 | 'setLabel': function (aValue) { |
107 | // this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); | 104 | // this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); |
108 | this.getElement('label').value = aValue; | 105 | this.getElement('label').value = aValue; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //========================================================================= | 108 | //========================================================================= |
112 | 109 | ||
113 | 'value': function () { | 110 | 'value': function () { |
114 | return this.getElement('value').value; | 111 | return this.getElement('value').value; |
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'setValue': function (aValue) { | 114 | 'setValue': function (aValue) { |
118 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); | 115 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); |
119 | this.getElement('value').value = aValue; | 116 | this.getElement('value').value = aValue; |
120 | }, | 117 | }, |
121 | 118 | ||
122 | //------------------------------------------------------------------------- | 119 | //------------------------------------------------------------------------- |
123 | 120 | ||
124 | 'actionType': function () { | 121 | 'actionType': function () { |
125 | return this._actionType; | 122 | return this._actionType; |
126 | }, | 123 | }, |
127 | 124 | ||
128 | 'setActionType': function (anActionType) { | 125 | 'setActionType': function (anActionType) { |
129 | this._actionType = anActionType; | 126 | this._actionType = anActionType; |
130 | 127 | ||
131 | switch (this._actionType) { | 128 | switch (this._actionType) { |
132 | case 'NONE': | 129 | case 'NONE': |
133 | MochiKit.Style.hideElement(this.getId('actionLink')); | 130 | MochiKit.Style.hideElement(this.getId('actionLink')); |
134 | MochiKit.DOM.setElementClass(this.getId('actionLink'), ''); | 131 | MochiKit.DOM.setElementClass(this.getId('actionLink'), ''); |
135 | break; | 132 | break; |
136 | case 'URL': | 133 | case 'URL': |
137 | MochiKit.Style.showElement(this.getId('actionLink')); | 134 | MochiKit.Style.showElement(this.getId('actionLink')); |
138 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'url'); | 135 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'url'); |
139 | break; | 136 | break; |
140 | case 'EMAIL': | 137 | case 'EMAIL': |
141 | MochiKit.Style.showElement(this.getId('actionLink')); | 138 | MochiKit.Style.showElement(this.getId('actionLink')); |
142 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'email'); | 139 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'email'); |
143 | break; | 140 | break; |
144 | case 'PASSWORD': | 141 | case 'PASSWORD': |
145 | MochiKit.Style.showElement(this.getId('actionLink')); | 142 | MochiKit.Style.showElement(this.getId('actionLink')); |
146 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'password'); | 143 | MochiKit.DOM.setElementClass(this.getId('actionLink'), 'password'); |
147 | break; | 144 | break; |
148 | } | 145 | } |
149 | }, | 146 | }, |
150 | 147 | ||
151 | //========================================================================= | 148 | //========================================================================= |
152 | 149 | ||
153 | 'isHidden': function () { | 150 | 'isHidden': function () { |
154 | // return this.getElement('value').value; | 151 | // return this.getElement('value').value; |
155 | return MochiKit.DOM.hasElementClass(this.getElement('isHidden'), 'locked'); | 152 | return MochiKit.DOM.hasElementClass(this.getElement('isHidden'), 'locked'); |
156 | }, | 153 | }, |
157 | 154 | ||
158 | 'setIsHidden': function (aValue) { | 155 | 'setIsHidden': function (aValue) { |
159 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); | 156 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); |
160 | MochiKit.DOM.setElementClass(this.getElement('isHidden'), (aValue ? 'locked': 'unlocked')); | 157 | MochiKit.DOM.setElementClass(this.getElement('isHidden'), (aValue ? 'locked': 'unlocked')); |
161 | MochiKit.DOM.setElementClass(this.getElement('valueWrapper'), (aValue ? 'locked': 'unlocked')); | 158 | MochiKit.DOM.setElementClass(this.getElement('valueWrapper'), (aValue ? 'locked': 'unlocked')); |
162 | }, | 159 | }, |
163 | 160 | ||
164 | 'toggleIsHidden': function (anEvent) { | 161 | 'toggleIsHidden': function (anEvent) { |
165 | anEvent.preventDefault(); | 162 | anEvent.preventDefault(); |
166 | 163 | ||
167 | this.setIsHidden(! this.isHidden()); | 164 | this.setIsHidden(! this.isHidden()); |
168 | MochiKit.Signal.signal(this, 'changedValue'); | 165 | MochiKit.Signal.signal(this, 'changedValue'); |
169 | }, | 166 | }, |
170 | 167 | ||
171 | //========================================================================= | 168 | //========================================================================= |
172 | 169 | ||
173 | 'handleActionLink': function (anEvent) { | 170 | 'handleActionLink': function (anEvent) { |
174 | anEvent.preventDefault(); | 171 | anEvent.preventDefault(); |
175 | 172 | ||
176 | //console.log("ACTION LINK - " + this.actionType()); | 173 | //console.log("ACTION LINK - " + this.actionType()); |
177 | MochiKit.Signal.signal(this, 'performAction', this.reference(), anEvent.target()); | 174 | MochiKit.Signal.signal(this, 'performAction', this.reference(), anEvent.target()); |
178 | }, | 175 | }, |
179 | 176 | ||
180 | //========================================================================= | 177 | //========================================================================= |
181 | 178 | ||
182 | 'deleteField': function (anEvent) { | 179 | 'deleteField': function (anEvent) { |
183 | anEvent.preventDefault(); | 180 | anEvent.preventDefault(); |
184 | 181 | ||
185 | MochiKit.Signal.signal(this, 'deleteField', this.reference()); | 182 | MochiKit.Signal.signal(this, 'deleteField', this.reference()); |
186 | }, | 183 | }, |
187 | 184 | ||
188 | //========================================================================= | 185 | //========================================================================= |
189 | __syntaxFix__: "syntax fix" | 186 | __syntaxFix__: "syntax fix" |
190 | }); | 187 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js index bfc7e61..391c379 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js | |||
@@ -1,203 +1,200 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.ColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.ColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._name = args.name || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._name = args.name || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._selector = args.selector|| Clipperz.Base.exception.raise('MandatoryParameter');; | 35 | this._selector = args.selector|| Clipperz.Base.exception.raise('MandatoryParameter');; |
39 | this._label = args.label || null; | 36 | this._label = args.label || null; |
40 | this._isSortable = args.sortable|| false; | 37 | this._isSortable = args.sortable|| false; |
41 | this._comparator = args.comparator|| null; | 38 | this._comparator = args.comparator|| null; |
42 | this._sorted = args.sorted || 'UNSORTED'; //'ASCENDING' | 'DESCENDING' | 'UNSORTED' | 39 | this._sorted = args.sorted || 'UNSORTED'; //'ASCENDING' | 'DESCENDING' | 'UNSORTED' |
43 | this._cssClass = args.cssClass|| ''; | 40 | this._cssClass = args.cssClass|| ''; |
44 | 41 | ||
45 | this._signalIdentifiers = []; | 42 | this._signalIdentifiers = []; |
46 | 43 | ||
47 | return this; | 44 | return this; |
48 | } | 45 | } |
49 | 46 | ||
50 | //============================================================================= | 47 | //============================================================================= |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ColumnManager, Clipperz.PM.UI.Common.Components.BaseComponent, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ColumnManager, Clipperz.PM.UI.Common.Components.BaseComponent, { |
53 | 50 | ||
54 | 'toString': function () { | 51 | 'toString': function () { |
55 | return "Clipperz.PM.UI.Web.Components.ColumnManager - " + this._name; | 52 | return "Clipperz.PM.UI.Web.Components.ColumnManager - " + this._name; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'name': function () { | 55 | 'name': function () { |
59 | return this._name; | 56 | return this._name; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'label': function () { | 59 | 'label': function () { |
63 | return this._label; | 60 | return this._label; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | 'selector': function () { | 63 | 'selector': function () { |
67 | return this._selector; | 64 | return this._selector; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'comparator': function() { | 67 | 'comparator': function() { |
71 | return this._comparator; | 68 | return this._comparator; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'cssClass': function() { | 71 | 'cssClass': function() { |
75 | return this._cssClass; | 72 | return this._cssClass; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'isSortable': function () { | 77 | 'isSortable': function () { |
81 | return this._isSortable; | 78 | return this._isSortable; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'sorted': function () { | 83 | 'sorted': function () { |
87 | return this._sorted; | 84 | return this._sorted; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | 'isSorted': function () { | 87 | 'isSorted': function () { |
91 | return (this.sorted() != 'UNSORTED'); | 88 | return (this.sorted() != 'UNSORTED'); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | 'setSorted': function(aValue) { | 91 | 'setSorted': function(aValue) { |
95 | this._sorted = aValue; | 92 | this._sorted = aValue; |
96 | this.updateSortIcon(); | 93 | this.updateSortIcon(); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'signalIdentifiers': function () { | 98 | 'signalIdentifiers': function () { |
102 | return this._signalIdentifiers; | 99 | return this._signalIdentifiers; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'resetSignalIdentifiers': function () { | 102 | 'resetSignalIdentifiers': function () { |
106 | this._signalIdentifiers = []; | 103 | this._signalIdentifiers = []; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'disconnectRowsSignals': function () { | 108 | 'disconnectRowsSignals': function () { |
112 | MochiKit.Base.map(MochiKit.Signal.disconnect, this.signalIdentifiers()); | 109 | MochiKit.Base.map(MochiKit.Signal.disconnect, this.signalIdentifiers()); |
113 | this.resetSignalIdentifiers(); | 110 | this.resetSignalIdentifiers(); |
114 | }, | 111 | }, |
115 | 112 | ||
116 | 'connectEvent': function () { | 113 | 'connectEvent': function () { |
117 | var ident; | 114 | var ident; |
118 | 115 | ||
119 | ident = MochiKit.Signal.connect.apply(null, arguments); | 116 | ident = MochiKit.Signal.connect.apply(null, arguments); |
120 | this.signalIdentifiers().push(ident); | 117 | this.signalIdentifiers().push(ident); |
121 | }, | 118 | }, |
122 | 119 | ||
123 | //------------------------------------------------------------------------- | 120 | //------------------------------------------------------------------------- |
124 | 121 | ||
125 | 'renderHeader': function(aTRElement) { | 122 | 'renderHeader': function(aTRElement) { |
126 | varthElement; | 123 | varthElement; |
127 | 124 | ||
128 | thElement = Clipperz.DOM.Helper.append(aTRElement, {tag:'th', cls:(this.cssClass() + 'TH'), id:this.getId('sortLink'), children:[ | 125 | thElement = Clipperz.DOM.Helper.append(aTRElement, {tag:'th', cls:(this.cssClass() + 'TH'), id:this.getId('sortLink'), children:[ |
129 | {tag:'span', html:this.label() ? this.label() : ' '} | 126 | {tag:'span', html:this.label() ? this.label() : ' '} |
130 | ]}); | 127 | ]}); |
131 | 128 | ||
132 | if (this.isSortable()) { | 129 | if (this.isSortable()) { |
133 | Clipperz.DOM.Helper.append(thElement, {tag:'span', cls:'sortable', children:[ | 130 | Clipperz.DOM.Helper.append(thElement, {tag:'span', cls:'sortable', children:[ |
134 | {tag:'a', href:'#'/*, id:this.getId('sortLink')*/, html:' '} | 131 | {tag:'a', href:'#'/*, id:this.getId('sortLink')*/, html:' '} |
135 | ]}); | 132 | ]}); |
136 | 133 | ||
137 | MochiKit.DOM.addElementClass(thElement, 'sortable'); | 134 | MochiKit.DOM.addElementClass(thElement, 'sortable'); |
138 | MochiKit.Signal.connect(thElement, 'onclick', this, 'handleClickOnSortingCriteria'); | 135 | MochiKit.Signal.connect(thElement, 'onclick', this, 'handleClickOnSortingCriteria'); |
139 | }; | 136 | }; |
140 | 137 | ||
141 | this.updateSortIcon(); | 138 | this.updateSortIcon(); |
142 | }, | 139 | }, |
143 | 140 | ||
144 | //------------------------------------------------------------------------- | 141 | //------------------------------------------------------------------------- |
145 | 142 | ||
146 | 'toggleSorting': function () { | 143 | 'toggleSorting': function () { |
147 | var result; | 144 | var result; |
148 | switch (this.sorted()) { | 145 | switch (this.sorted()) { |
149 | case 'UNSORTED': | 146 | case 'UNSORTED': |
150 | result = 'ASCENDING'; | 147 | result = 'ASCENDING'; |
151 | break; | 148 | break; |
152 | case 'ASCENDING': | 149 | case 'ASCENDING': |
153 | result = 'DESCENDING'; | 150 | result = 'DESCENDING'; |
154 | break; | 151 | break; |
155 | case 'DESCENDING': | 152 | case 'DESCENDING': |
156 | result = 'ASCENDING'; | 153 | result = 'ASCENDING'; |
157 | break; | 154 | break; |
158 | default: | 155 | default: |
159 | result = 'UNSORTED'; | 156 | result = 'UNSORTED'; |
160 | break; | 157 | break; |
161 | } | 158 | } |
162 | 159 | ||
163 | this.setSorted(result); | 160 | this.setSorted(result); |
164 | 161 | ||
165 | return result; | 162 | return result; |
166 | }, | 163 | }, |
167 | 164 | ||
168 | //------------------------------------------------------------------------- | 165 | //------------------------------------------------------------------------- |
169 | 166 | ||
170 | 'sortElementClass': function () { | 167 | 'sortElementClass': function () { |
171 | return this.sorted().toLowerCase(); | 168 | return this.sorted().toLowerCase(); |
172 | }, | 169 | }, |
173 | 170 | ||
174 | //------------------------------------------------------------------------- | 171 | //------------------------------------------------------------------------- |
175 | 172 | ||
176 | 'updateSortIcon': function () { | 173 | 'updateSortIcon': function () { |
177 | if (this.isSortable()) { | 174 | if (this.isSortable()) { |
178 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'ascending'); | 175 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'ascending'); |
179 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'descending'); | 176 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'descending'); |
180 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'unsorted'); | 177 | MochiKit.DOM.removeElementClass(this.getId('sortLink'), 'unsorted'); |
181 | 178 | ||
182 | MochiKit.DOM.addElementClass(this.getId('sortLink'), this.sortElementClass()); | 179 | MochiKit.DOM.addElementClass(this.getId('sortLink'), this.sortElementClass()); |
183 | } | 180 | } |
184 | }, | 181 | }, |
185 | 182 | ||
186 | //------------------------------------------------------------------------- | 183 | //------------------------------------------------------------------------- |
187 | 184 | ||
188 | 'renderCell': function(aRowElement, anObject) { | 185 | 'renderCell': function(aRowElement, anObject) { |
189 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[{tag:'span', html:anObject[this.name()]}]}); | 186 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[{tag:'span', html:anObject[this.name()]}]}); |
190 | }, | 187 | }, |
191 | 188 | ||
192 | //----------------------------------------------------- | 189 | //----------------------------------------------------- |
193 | 190 | ||
194 | 'handleClickOnSortingCriteria': function (anEvent) { | 191 | 'handleClickOnSortingCriteria': function (anEvent) { |
195 | anEvent.preventDefault(); | 192 | anEvent.preventDefault(); |
196 | MochiKit.Signal.signal(this, 'sort', this); | 193 | MochiKit.Signal.signal(this, 'sort', this); |
197 | }, | 194 | }, |
198 | 195 | ||
199 | //----------------------------------------------------- | 196 | //----------------------------------------------------- |
200 | '__syntax_fix__' : 'syntax fix' | 197 | '__syntax_fix__' : 'syntax fix' |
201 | 198 | ||
202 | }); | 199 | }); |
203 | 200 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js index 61d6ead..d3aa175 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent component"; | 43 | return "Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'renderSelf': function() { | 48 | 'renderSelf': function() { |
52 | this.append(this.element(), [ | 49 | this.append(this.element(), [ |
53 | {tag:'div', cls:'createNewCardSplash', id:this.getId('button'), children:[ | 50 | {tag:'div', cls:'createNewCardSplash', id:this.getId('button'), children:[ |
54 | {tag:'span', html:"Create New Card"} | 51 | {tag:'span', html:"Create New Card"} |
55 | ]} | 52 | ]} |
56 | ]); | 53 | ]); |
57 | 54 | ||
58 | MochiKit.Signal.connect(this.getElement('button'), 'onclick', this, 'handleClick'); | 55 | MochiKit.Signal.connect(this.getElement('button'), 'onclick', this, 'handleClick'); |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'handleClick': function (anEvent) { | 60 | 'handleClick': function (anEvent) { |
64 | anEvent.preventDefault(); | 61 | anEvent.preventDefault(); |
65 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addCard', this.element()); | 62 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addCard', this.element()); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js index 91d99e3..d2f1045 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js | |||
@@ -1,111 +1,108 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DataPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DataPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DataPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DataPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._initiallySelectedTab = args.selected || 'OFFLINE_COPY'; | 33 | this._initiallySelectedTab = args.selected || 'OFFLINE_COPY'; |
37 | this._tabPanelControllerConfiguration = { | 34 | this._tabPanelControllerConfiguration = { |
38 | 'OFFLINE_COPY': { | 35 | 'OFFLINE_COPY': { |
39 | tab:'offlineCopyTab', | 36 | tab:'offlineCopyTab', |
40 | panel:'offlineCopyPanel' | 37 | panel:'offlineCopyPanel' |
41 | }, | 38 | }, |
42 | 'SHARING': { | 39 | 'SHARING': { |
43 | tab:'sharingTab', | 40 | tab:'sharingTab', |
44 | panel:'sharingPanel' | 41 | panel:'sharingPanel' |
45 | }, | 42 | }, |
46 | 'IMPORT': { | 43 | 'IMPORT': { |
47 | tab:'importTab', | 44 | tab:'importTab', |
48 | panel:'importPanel' | 45 | panel:'importPanel' |
49 | }, | 46 | }, |
50 | 'EXPORT': { | 47 | 'EXPORT': { |
51 | tab:'exportTab', | 48 | tab:'exportTab', |
52 | panel:'exportPanel' | 49 | panel:'exportPanel' |
53 | } | 50 | } |
54 | }; | 51 | }; |
55 | 52 | ||
56 | return this; | 53 | return this; |
57 | } | 54 | } |
58 | 55 | ||
59 | //============================================================================= | 56 | //============================================================================= |
60 | 57 | ||
61 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 58 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'toString': function () { | 62 | 'toString': function () { |
66 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
72 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
73 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
74 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
75 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
76 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, |
77 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, | 74 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, |
78 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, | 75 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, |
79 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} | 76 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} |
80 | ]} | 77 | ]} |
81 | ]} | 78 | ]} |
82 | ]}, | 79 | ]}, |
83 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
84 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
85 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
86 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
87 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ | 84 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ |
88 | {tag:'h3', html:"Offline copy"} | 85 | {tag:'h3', html:"Offline copy"} |
89 | ]}, | 86 | ]}, |
90 | {tag:'li', id:this.getId('sharingPanel'),children:[ | 87 | {tag:'li', id:this.getId('sharingPanel'),children:[ |
91 | {tag:'h3', html:"Sharing"} | 88 | {tag:'h3', html:"Sharing"} |
92 | ]}, | 89 | ]}, |
93 | {tag:'li', id:this.getId('importPanel'), children:[ | 90 | {tag:'li', id:this.getId('importPanel'), children:[ |
94 | {tag:'h3', html:"Import"} | 91 | {tag:'h3', html:"Import"} |
95 | ]}, | 92 | ]}, |
96 | {tag:'li', id:this.getId('exportPanel'), children:[ | 93 | {tag:'li', id:this.getId('exportPanel'), children:[ |
97 | {tag:'h3', html:"Export"} | 94 | {tag:'h3', html:"Export"} |
98 | ]} | 95 | ]} |
99 | ]} | 96 | ]} |
100 | ]} | 97 | ]} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'footer'} | 100 | {tag:'div', cls:'footer'} |
104 | ]); | 101 | ]); |
105 | 102 | ||
106 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | __syntaxFix__: "syntax fix" | 107 | __syntaxFix__: "syntax fix" |
111 | }); | 108 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js index 3f8aa88..ea55ba4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js | |||
@@ -1,72 +1,69 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DateColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DateColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._format = args.format|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._format = args.format|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DateColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DateColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 44 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'format': function () { | 49 | 'format': function () { |
53 | return this._format; | 50 | return this._format; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'renderCell': function(aRowElement, anObject) { | 55 | 'renderCell': function(aRowElement, anObject) { |
59 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 56 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
60 | { | 57 | { |
61 | tag:'span', | 58 | tag:'span', |
62 | title:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], "D, d M Y H:i:s"), | 59 | title:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], "D, d M Y H:i:s"), |
63 | html:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], this.format()) | 60 | html:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], this.format()) |
64 | } | 61 | } |
65 | ]}); | 62 | ]}); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //----------------------------------------------------- | 65 | //----------------------------------------------------- |
69 | 66 | ||
70 | '__syntax_fix__' : 'syntax fix' | 67 | '__syntax_fix__' : 'syntax fix' |
71 | }); | 68 | }); |
72 | 69 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js index ee60f2f..fe59494 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js | |||
@@ -1,70 +1,67 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager, Clipperz.PM.UI.Web.Components.LinkColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager, Clipperz.PM.UI.Web.Components.LinkColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | var tdElement; | 48 | var tdElement; |
52 | var linkElement; | 49 | var linkElement; |
53 | 50 | ||
54 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 51 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
55 | {tag:'div', cls:'delete', children:[ | 52 | {tag:'div', cls:'delete', children:[ |
56 | {tag:'span', children:[ | 53 | {tag:'span', children:[ |
57 | {tag:'a', href:'delete', html:"delete"} | 54 | {tag:'a', href:'delete', html:"delete"} |
58 | ]} | 55 | ]} |
59 | ]} | 56 | ]} |
60 | ]}); | 57 | ]}); |
61 | 58 | ||
62 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 59 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
63 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 60 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
64 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 61 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //----------------------------------------------------- | 64 | //----------------------------------------------------- |
68 | '__syntax_fix__' : 'syntax fix' | 65 | '__syntax_fix__' : 'syntax fix' |
69 | }); | 66 | }); |
70 | 67 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js index 4bf9020..a1f0f9f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js | |||
@@ -1,90 +1,87 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* | 26 | /* |
30 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 27 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
31 | 28 | ||
32 | //############################################################################# | 29 | //############################################################################# |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager = function(args) { | 31 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager.superclass.constructor.call(this, args); | 33 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager.superclass.constructor.call(this, args); |
37 | 34 | ||
38 | this._actionMethod = args.actionMethod || null; | 35 | this._actionMethod = args.actionMethod || null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 45 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'actionMethod': function () { | 50 | 'actionMethod': function () { |
54 | return this._actionMethod; | 51 | return this._actionMethod; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'renderCell': function(aRowElement, anObject) { | 56 | 'renderCell': function(aRowElement, anObject) { |
60 | vartdElement; | 57 | vartdElement; |
61 | varlinkElement; | 58 | varlinkElement; |
62 | 59 | ||
63 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 60 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
64 | {tag:'div', cls:'directLogin_directLogin', children:[ | 61 | {tag:'div', cls:'directLogin_directLogin', children:[ |
65 | {tag:'div', cls:'directLogin_directLogin_body', children:[ | 62 | {tag:'div', cls:'directLogin_directLogin_body', children:[ |
66 | {tag:'a', href:'#', html:anObject[this.name()]} | 63 | {tag:'a', href:'#', html:anObject[this.name()]} |
67 | ]} | 64 | ]} |
68 | ]} | 65 | ]} |
69 | ]}); | 66 | ]}); |
70 | 67 | ||
71 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 68 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
72 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 69 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
73 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 70 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //----------------------------------------------------- | 73 | //----------------------------------------------------- |
77 | 74 | ||
78 | 'handleLinkClick': function (anObject, anEvent) { | 75 | 'handleLinkClick': function (anObject, anEvent) { |
79 | anEvent.preventDefault(); | 76 | anEvent.preventDefault(); |
80 | 77 | ||
81 | if (this.actionMethod() != null) { | 78 | if (this.actionMethod() != null) { |
82 | this.actionMethod()(anObject, anEvent); | 79 | this.actionMethod()(anObject, anEvent); |
83 | } | 80 | } |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------- | 83 | //----------------------------------------------------- |
87 | '__syntax_fix__' : 'syntax fix' | 84 | '__syntax_fix__' : 'syntax fix' |
88 | }); | 85 | }); |
89 | 86 | ||
90 | */ \ No newline at end of file | 87 | */ \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js index 9a9c0b2..1a76b0c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js | |||
@@ -1,168 +1,165 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._fields = args.fields || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._fields = args.fields || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._initiallySelectedFieldKey = args.selectedFieldKey|| null; | 35 | this._initiallySelectedFieldKey = args.selectedFieldKey|| null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent component"; | 47 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'formFieldName': function () { | 52 | 'formFieldName': function () { |
56 | return this._formFieldName; | 53 | return this._formFieldName; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'fields': function () { | 58 | 'fields': function () { |
62 | return this._fields; | 59 | return this._fields; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'selectedValue': function () { | 64 | 'selectedValue': function () { |
68 | var result; | 65 | var result; |
69 | 66 | ||
70 | result = this.getElement('select').value; | 67 | result = this.getElement('select').value; |
71 | 68 | ||
72 | if (result == '---') { | 69 | if (result == '---') { |
73 | result = null; | 70 | result = null; |
74 | } | 71 | } |
75 | 72 | ||
76 | return result; | 73 | return result; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'initiallySelectedFieldKey': function () { | 76 | 'initiallySelectedFieldKey': function () { |
80 | return this._initiallySelectedFieldKey; | 77 | return this._initiallySelectedFieldKey; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //========================================================================= | 80 | //========================================================================= |
84 | 81 | ||
85 | 'renderSelf': function() { | 82 | 'renderSelf': function() { |
86 | var initiallySelectedOptions; | 83 | var initiallySelectedOptions; |
87 | 84 | ||
88 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'binding', children:[ | 85 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'binding', children:[ |
89 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, | 86 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, |
90 | {tag:'span', cls:'fieldLock', id:this.getId('isHidden'), children:[ | 87 | {tag:'span', cls:'fieldLock', id:this.getId('isHidden'), children:[ |
91 | {tag:'a', href:'#', id:this.getId('showHide'), html:' '} | 88 | {tag:'a', href:'#', id:this.getId('showHide'), html:' '} |
92 | ]}, | 89 | ]}, |
93 | {tag:'input', id:this.getId('input'), cls:'formFieldExampleValue', disabled:true, value:''}, | 90 | {tag:'input', id:this.getId('input'), cls:'formFieldExampleValue', disabled:true, value:''}, |
94 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: | 91 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: |
95 | MochiKit.Base.flattenArguments( | 92 | MochiKit.Base.flattenArguments( |
96 | {tag:'option', value:'---', html:"---"}, | 93 | {tag:'option', value:'---', html:"---"}, |
97 | MochiKit.Base.map( | 94 | MochiKit.Base.map( |
98 | MochiKit.Base.bind(function (aField) { return {tag:'option', value:aField['reference'], html:aField['label']}; }, this), | 95 | MochiKit.Base.bind(function (aField) { return {tag:'option', value:aField['reference'], html:aField['label']}; }, this), |
99 | this.fields() | 96 | this.fields() |
100 | ) | 97 | ) |
101 | ) | 98 | ) |
102 | } | 99 | } |
103 | ]}); | 100 | ]}); |
104 | 101 | ||
105 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); | 102 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); |
106 | MochiKit.Signal.connect(this.getElement('showHide'), 'onclick', this, 'handleShowHide'); | 103 | MochiKit.Signal.connect(this.getElement('showHide'), 'onclick', this, 'handleShowHide'); |
107 | 104 | ||
108 | if (! MochiKit.Base.isUndefinedOrNull(this.initiallySelectedFieldKey())) { | 105 | if (! MochiKit.Base.isUndefinedOrNull(this.initiallySelectedFieldKey())) { |
109 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initiallySelectedFieldKey() + ']']); | 106 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initiallySelectedFieldKey() + ']']); |
110 | if (initiallySelectedOptions.length == 1) { | 107 | if (initiallySelectedOptions.length == 1) { |
111 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); | 108 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); |
112 | this.handleSelectChange(); | 109 | this.handleSelectChange(); |
113 | } | 110 | } |
114 | } | 111 | } |
115 | }, | 112 | }, |
116 | 113 | ||
117 | //------------------------------------------------------------------------- | 114 | //------------------------------------------------------------------------- |
118 | 115 | ||
119 | 'setFieldValue': function (aValue) { | 116 | 'setFieldValue': function (aValue) { |
120 | this.getElement('input').value = aValue; | 117 | this.getElement('input').value = aValue; |
121 | }, | 118 | }, |
122 | 119 | ||
123 | 'isHidden': function () { | 120 | 'isHidden': function () { |
124 | return MochiKit.DOM.hasElementClass(this.getElement('div'), 'locked'); | 121 | return MochiKit.DOM.hasElementClass(this.getElement('div'), 'locked'); |
125 | }, | 122 | }, |
126 | 123 | ||
127 | 'setIsHidden': function (aValue) { | 124 | 'setIsHidden': function (aValue) { |
128 | if (aValue == true) { | 125 | if (aValue == true) { |
129 | MochiKit.DOM.addElementClass(this.getElement('div'), 'locked'); | 126 | MochiKit.DOM.addElementClass(this.getElement('div'), 'locked'); |
130 | MochiKit.DOM.addElementClass(this.getElement('div'), 'showLocked'); | 127 | MochiKit.DOM.addElementClass(this.getElement('div'), 'showLocked'); |
131 | } else { | 128 | } else { |
132 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'locked'); | 129 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'locked'); |
133 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'showLocked'); | 130 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'showLocked'); |
134 | } | 131 | } |
135 | }, | 132 | }, |
136 | 133 | ||
137 | 'isShowLocked': function () { | 134 | 'isShowLocked': function () { |
138 | return MochiKit.DOM.hasElementClass(this.getElement('div'), 'showLocked'); | 135 | return MochiKit.DOM.hasElementClass(this.getElement('div'), 'showLocked'); |
139 | }, | 136 | }, |
140 | 137 | ||
141 | //------------------------------------------------------------------------- | 138 | //------------------------------------------------------------------------- |
142 | 139 | ||
143 | 'handleSelectChange': function (anEvent) { | 140 | 'handleSelectChange': function (anEvent) { |
144 | // this.getElement('input').value = this.valueOfField(anEvent.src().value); | 141 | // this.getElement('input').value = this.valueOfField(anEvent.src().value); |
145 | MochiKit.Signal.signal(this, 'bindChange', this); | 142 | MochiKit.Signal.signal(this, 'bindChange', this); |
146 | }, | 143 | }, |
147 | 144 | ||
148 | 'handleShowHide': function (anEvent) { | 145 | 'handleShowHide': function (anEvent) { |
149 | anEvent.preventDefault(); | 146 | anEvent.preventDefault(); |
150 | 147 | ||
151 | if (this.isShowLocked()) { | 148 | if (this.isShowLocked()) { |
152 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'showLocked'); | 149 | MochiKit.DOM.removeElementClass(this.getElement('div'), 'showLocked'); |
153 | } else { | 150 | } else { |
154 | MochiKit.DOM.addElementClass(this.getElement('div'), 'showLocked'); | 151 | MochiKit.DOM.addElementClass(this.getElement('div'), 'showLocked'); |
155 | } | 152 | } |
156 | }, | 153 | }, |
157 | 154 | ||
158 | //========================================================================= | 155 | //========================================================================= |
159 | __syntaxFix__: "syntax fix" | 156 | __syntaxFix__: "syntax fix" |
160 | }); | 157 | }); |
161 | 158 | ||
162 | 159 | ||
163 | 160 | ||
164 | 161 | ||
165 | 162 | ||
166 | 163 | ||
167 | 164 | ||
168 | 165 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js index d254c29..5114b1d 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._initiallySelectedTab = args.selected || 'TYPE'; | 35 | this._initiallySelectedTab = args.selected || 'TYPE'; |
39 | this._tabPanelControllerConfiguration = { | 36 | this._tabPanelControllerConfiguration = { |
40 | 'LABEL': { | 37 | 'LABEL': { |
41 | tab:'labelTab', | 38 | tab:'labelTab', |
42 | panel:'labelTabpanel' | 39 | panel:'labelTabpanel' |
43 | }, | 40 | }, |
44 | 'TYPE': { | 41 | 'TYPE': { |
45 | tab:'typeTab', | 42 | tab:'typeTab', |
46 | panel:'typeTabpanel' | 43 | panel:'typeTabpanel' |
47 | }, | 44 | }, |
48 | 'CONFIGURATION': { | 45 | 'CONFIGURATION': { |
49 | tab:'configurationTab', | 46 | tab:'configurationTab', |
50 | panel:'configurationTabpanel' | 47 | panel:'configurationTabpanel' |
51 | }, | 48 | }, |
52 | 'BINDINGS': { | 49 | 'BINDINGS': { |
53 | tab:'bindingsTab', | 50 | tab:'bindingsTab', |
54 | panel:'bindingsTabpanel' | 51 | panel:'bindingsTabpanel' |
55 | }, | 52 | }, |
56 | 'FAVICON': { | 53 | 'FAVICON': { |
57 | tab:'faviconTab', | 54 | tab:'faviconTab', |
58 | panel:'faviconTabpanel' | 55 | panel:'faviconTabpanel' |
59 | }, | 56 | }, |
60 | 'DONE': { | 57 | 'DONE': { |
61 | tab:'doneTab', | 58 | tab:'doneTab', |
62 | panel:'doneTabpanel' | 59 | panel:'doneTabpanel' |
63 | } | 60 | } |
64 | }; | 61 | }; |
65 | 62 | ||
66 | this._directLoginReference = null; | 63 | this._directLoginReference = null; |
67 | 64 | ||
68 | this._directLoginFavicon = null; | 65 | this._directLoginFavicon = null; |
69 | 66 | ||
70 | this._updateFaviconCounter = 0; | 67 | this._updateFaviconCounter = 0; |
71 | this._faviconComponent = null; | 68 | this._faviconComponent = null; |
72 | 69 | ||
73 | this._bindingComponents= []; | 70 | this._bindingComponents= []; |
74 | this._formValueComponents = []; | 71 | this._formValueComponents = []; |
75 | 72 | ||
76 | return this; | 73 | return this; |
77 | } | 74 | } |
78 | 75 | ||
79 | //============================================================================= | 76 | //============================================================================= |
80 | 77 | ||
81 | //Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 78 | //Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
82 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 79 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'toString': function () { | 83 | 'toString': function () { |
87 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent component"; | 84 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent component"; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //========================================================================= | 87 | //========================================================================= |
91 | 88 | ||
92 | 'directLoginReference': function () { | 89 | 'directLoginReference': function () { |
93 | return this._directLoginReference; | 90 | return this._directLoginReference; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //------------------------------------------------------------------------- | 93 | //------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'setDirectLoginReference': function (aDirectLoginReference) { | 95 | 'setDirectLoginReference': function (aDirectLoginReference) { |
99 | this._directLoginReference = aDirectLoginReference; | 96 | this._directLoginReference = aDirectLoginReference; |
100 | 97 | ||
101 | return this._directLoginReference; | 98 | return this._directLoginReference; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //========================================================================= | 101 | //========================================================================= |
105 | 102 | ||
106 | 'label': function () { | 103 | 'label': function () { |
107 | return this.getElement('label').value | 104 | return this.getElement('label').value |
108 | }, | 105 | }, |
109 | 106 | ||
110 | 'setLabel': function (aValue) { | 107 | 'setLabel': function (aValue) { |
111 | //console.log("##> LABEL: " + aValue); | 108 | //console.log("##> LABEL: " + aValue); |
112 | this.getElement('label').value = (aValue ? aValue : ''); | 109 | this.getElement('label').value = (aValue ? aValue : ''); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //------------------------------------------------------------------------- | 112 | //------------------------------------------------------------------------- |
116 | 113 | ||
117 | 'favicon': function () { | 114 | 'favicon': function () { |
118 | return this.getElement('faviconURL').value; | 115 | return this.getElement('faviconURL').value; |
119 | }, | 116 | }, |
120 | 117 | ||
121 | 'setFavicon': function (aValue) { | 118 | 'setFavicon': function (aValue) { |
122 | var regexp; | 119 | var regexp; |
123 | var displayValue; | 120 | var displayValue; |
124 | 121 | ||
125 | regexp = new RegExp('^data\:\/\/.*', 'i'); | 122 | regexp = new RegExp('^data\:\/\/.*', 'i'); |
126 | if (regexp.test(aValue)) { | 123 | if (regexp.test(aValue)) { |
127 | displayValue = '' | 124 | displayValue = '' |
128 | } else { | 125 | } else { |
129 | displayValue = (aValue ? aValue : ''); | 126 | displayValue = (aValue ? aValue : ''); |
130 | } | 127 | } |
131 | 128 | ||
132 | this.getElement('faviconURL').value = displayValue; | 129 | this.getElement('faviconURL').value = displayValue; |
133 | this.faviconComponent().setSrc(aValue); | 130 | this.faviconComponent().setSrc(aValue); |
134 | }, | 131 | }, |
135 | 132 | ||
136 | //'setFaviconData': function (aValue) { | 133 | //'setFaviconData': function (aValue) { |
137 | // this.getElement('faviconIcon').src = aValue; | 134 | // this.getElement('faviconIcon').src = aValue; |
138 | //}, | 135 | //}, |
139 | 136 | ||
140 | 'directLoginFavicon': function () { | 137 | 'directLoginFavicon': function () { |
141 | return this._directLoginFavicon; | 138 | return this._directLoginFavicon; |
142 | }, | 139 | }, |
143 | 140 | ||
144 | 'setDirectLoginFavicon': function (aValue) { | 141 | 'setDirectLoginFavicon': function (aValue) { |
145 | this._directLoginFavicon = aValue; | 142 | this._directLoginFavicon = aValue; |
146 | this.setFavicon(aValue); | 143 | this.setFavicon(aValue); |
147 | }, | 144 | }, |
148 | 145 | ||
149 | //------------------------------------------------------------------------- | 146 | //------------------------------------------------------------------------- |
150 | 147 | ||
151 | 'bookmarkletConfiguration': function () { | 148 | 'bookmarkletConfiguration': function () { |
152 | return this.getElement('bookmarkletConfiguration').value | 149 | return this.getElement('bookmarkletConfiguration').value |
153 | }, | 150 | }, |
154 | 151 | ||
155 | 'setBookmarkletConfiguration': function (aValue) { | 152 | 'setBookmarkletConfiguration': function (aValue) { |
156 | this.getElement('bookmarkletConfiguration').value = aValue; | 153 | this.getElement('bookmarkletConfiguration').value = aValue; |
157 | }, | 154 | }, |
158 | 155 | ||
159 | 'highlightConfigurationSyntaxError': function () { | 156 | 'highlightConfigurationSyntaxError': function () { |
160 | MochiKit.DOM.addElementClass(this.getElement('bookmarkletConfiguration'), 'error'); | 157 | MochiKit.DOM.addElementClass(this.getElement('bookmarkletConfiguration'), 'error'); |
161 | }, | 158 | }, |
162 | 159 | ||
163 | 'removeHighlightConfigurationSyntaxError': function () { | 160 | 'removeHighlightConfigurationSyntaxError': function () { |
164 | MochiKit.DOM.removeElementClass(this.getElement('bookmarkletConfiguration'), 'error'); | 161 | MochiKit.DOM.removeElementClass(this.getElement('bookmarkletConfiguration'), 'error'); |
165 | }, | 162 | }, |
166 | 163 | ||
167 | //========================================================================= | 164 | //========================================================================= |
168 | 165 | ||
169 | 'disableAllPanels': function () { | 166 | 'disableAllPanels': function () { |
170 | this.getElement('label').disabled = true; | 167 | this.getElement('label').disabled = true; |
171 | MochiKit.DOM.addElementClass(this.getElement('label').parentNode, 'disabled'); | 168 | MochiKit.DOM.addElementClass(this.getElement('label').parentNode, 'disabled'); |
172 | 169 | ||
173 | this.tabPanelController().selectTab(null); | 170 | this.tabPanelController().selectTab(null); |
174 | }, | 171 | }, |
175 | 172 | ||
176 | //------------------------------------------------------------------------- | 173 | //------------------------------------------------------------------------- |
177 | 174 | ||
178 | //'disableLabelField': function () { | 175 | //'disableLabelField': function () { |
179 | // this.getElement('label').disabled = true; | 176 | // this.getElement('label').disabled = true; |
180 | // MochiKit.DOM.addElementClass(this.getElement('label').parentNode, 'disabled'); | 177 | // MochiKit.DOM.addElementClass(this.getElement('label').parentNode, 'disabled'); |
181 | //}, | 178 | //}, |
182 | 179 | ||
183 | 'enableLabelField': function () { | 180 | 'enableLabelField': function () { |
184 | this.getElement('label').disabled = false; | 181 | this.getElement('label').disabled = false; |
185 | MochiKit.DOM.removeElementClass(this.getElement('label').parentNode, 'disabled'); | 182 | MochiKit.DOM.removeElementClass(this.getElement('label').parentNode, 'disabled'); |
186 | this.tabPanelController().selectTab('LABEL'); | 183 | this.tabPanelController().selectTab('LABEL'); |
187 | }, | 184 | }, |
188 | 185 | ||
189 | //------------------------------------------------------------------------- | 186 | //------------------------------------------------------------------------- |
190 | 187 | ||
191 | //'disableTypeField': function () { | 188 | //'disableTypeField': function () { |
192 | // this.tabPanelController().selectTab(null); | 189 | // this.tabPanelController().selectTab(null); |
193 | //}, | 190 | //}, |
194 | 191 | ||
195 | 'enableTypeField': function () { | 192 | 'enableTypeField': function () { |
196 | this.tabPanelController().selectTab('TYPE'); | 193 | this.tabPanelController().selectTab('TYPE'); |
197 | }, | 194 | }, |
198 | 195 | ||
199 | //------------------------------------------------------------------------- | 196 | //------------------------------------------------------------------------- |
200 | 197 | ||
201 | //'disableConfigurationField': function () { | 198 | //'disableConfigurationField': function () { |
202 | // this.tabPanelController().selectTab(null); | 199 | // this.tabPanelController().selectTab(null); |
203 | //}, | 200 | //}, |
204 | 201 | ||
205 | 'enableConfigurationField': function () { | 202 | 'enableConfigurationField': function () { |
206 | this.tabPanelController().selectTab('CONFIGURATION'); | 203 | this.tabPanelController().selectTab('CONFIGURATION'); |
207 | }, | 204 | }, |
208 | 205 | ||
209 | //------------------------------------------------------------------------- | 206 | //------------------------------------------------------------------------- |
210 | 207 | ||
211 | //'disableBindingFields': function () { | 208 | //'disableBindingFields': function () { |
212 | // this.tabPanelController().selectTab(null); | 209 | // this.tabPanelController().selectTab(null); |
213 | //}, | 210 | //}, |
214 | 211 | ||
215 | 'enableBindingFields': function () { | 212 | 'enableBindingFields': function () { |
216 | this.tabPanelController().selectTab('BINDINGS'); | 213 | this.tabPanelController().selectTab('BINDINGS'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js index b91eb98..fa57233 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js | |||
@@ -1,179 +1,176 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._fieldOptions = args.fieldOptions || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._fieldOptions = args.fieldOptions || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._initialValue = args.initialValue || null; | 35 | this._initialValue = args.initialValue || null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent component"; | 47 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'formFieldName': function () { | 52 | 'formFieldName': function () { |
56 | return this._formFieldName; | 53 | return this._formFieldName; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'fieldOptions': function () { | 58 | 'fieldOptions': function () { |
62 | return this._fieldOptions; | 59 | return this._fieldOptions; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | 'fieldType': function () { | 62 | 'fieldType': function () { |
66 | return this.fieldOptions()['type']; | 63 | return this.fieldOptions()['type']; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | 'optionValues': function () { | 66 | 'optionValues': function () { |
70 | return MochiKit.Base.map(function (anOptionValue) { | 67 | return MochiKit.Base.map(function (anOptionValue) { |
71 | return { | 68 | return { |
72 | 'label': anOptionValue['label'] || anOptionValue['value'], | 69 | 'label': anOptionValue['label'] || anOptionValue['value'], |
73 | 'value': anOptionValue['value'] | 70 | 'value': anOptionValue['value'] |
74 | } | 71 | } |
75 | }, this.fieldOptions()['options']); | 72 | }, this.fieldOptions()['options']); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'selectedValue': function () { | 77 | 'selectedValue': function () { |
81 | var result; | 78 | var result; |
82 | 79 | ||
83 | result = this.getElement('select').value; | 80 | result = this.getElement('select').value; |
84 | 81 | ||
85 | if (result == '---') { | 82 | if (result == '---') { |
86 | result = null; | 83 | result = null; |
87 | } | 84 | } |
88 | 85 | ||
89 | return result; | 86 | return result; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'initialValue': function () { | 89 | 'initialValue': function () { |
93 | return this._initialValue; | 90 | return this._initialValue; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //========================================================================= | 93 | //========================================================================= |
97 | 94 | ||
98 | 'renderSelf': function() { | 95 | 'renderSelf': function() { |
99 | //console.log(">>> DirectLoginEditingFormValueComponent.renderSelf"); | 96 | //console.log(">>> DirectLoginEditingFormValueComponent.renderSelf"); |
100 | //console.log("FIELD OPTIONS", this.fieldOptions()); | 97 | //console.log("FIELD OPTIONS", this.fieldOptions()); |
101 | //console.log("OPTION VALUES", this.optionValues()); | 98 | //console.log("OPTION VALUES", this.optionValues()); |
102 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ | 99 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ |
103 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, | 100 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, |
104 | {tag:'div', id:this.getId('values')} | 101 | {tag:'div', id:this.getId('values')} |
105 | ]}); | 102 | ]}); |
106 | 103 | ||
107 | if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { | 104 | if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { |
108 | this.append(this.getElement('values'), | 105 | this.append(this.getElement('values'), |
109 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: | 106 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: |
110 | MochiKit.Base.flattenArguments( | 107 | MochiKit.Base.flattenArguments( |
111 | // {tag:'option', value:'---', html:"---"}, | 108 | // {tag:'option', value:'---', html:"---"}, |
112 | MochiKit.Base.map( | 109 | MochiKit.Base.map( |
113 | MochiKit.Base.bind(function (aValue) { return {tag:'option', value:aValue['value'], html:aValue['label']}; }, this), | 110 | MochiKit.Base.bind(function (aValue) { return {tag:'option', value:aValue['value'], html:aValue['label']}; }, this), |
114 | this.optionValues() | 111 | this.optionValues() |
115 | ) | 112 | ) |
116 | ) | 113 | ) |
117 | } | 114 | } |
118 | ); | 115 | ); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); | 117 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); |
121 | 118 | ||
122 | if (! MochiKit.Base.isUndefinedOrNull(this.initialValue())) { | 119 | if (! MochiKit.Base.isUndefinedOrNull(this.initialValue())) { |
123 | var initiallySelectedOptions; | 120 | var initiallySelectedOptions; |
124 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initialValue() + ']']); | 121 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initialValue() + ']']); |
125 | if (initiallySelectedOptions.length == 1) { | 122 | if (initiallySelectedOptions.length == 1) { |
126 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); | 123 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); |
127 | this.handleSelectChange(); | 124 | this.handleSelectChange(); |
128 | } else { | 125 | } else { |
129 | Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); | 126 | Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); |
130 | } | 127 | } |
131 | } else { | 128 | } else { |
132 | Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); | 129 | Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); |
133 | } | 130 | } |
134 | } else if (this.fieldType() == 'checkbox') { | 131 | } else if (this.fieldType() == 'checkbox') { |
135 | this.append(this.getElement('values'), | 132 | this.append(this.getElement('values'), |
136 | {tag:'input', type:'checkbox', name:this.formFieldName(), id:this.getId('checkbox'), cls:'formFieldMatchinCardField'} | 133 | {tag:'input', type:'checkbox', name:this.formFieldName(), id:this.getId('checkbox'), cls:'formFieldMatchinCardField'} |
137 | ); | 134 | ); |
138 | 135 | ||
139 | MochiKit.Signal.connect(this.getElement('checkbox'), 'onchange', this, 'handleSelectChange'); | 136 | MochiKit.Signal.connect(this.getElement('checkbox'), 'onchange', this, 'handleSelectChange'); |
140 | 137 | ||
141 | if (this.initialValue()) { | 138 | if (this.initialValue()) { |
142 | MochiKit.DOM.updateNodeAttributes(this.getElement('checkbox'), {checked:true}); | 139 | MochiKit.DOM.updateNodeAttributes(this.getElement('checkbox'), {checked:true}); |
143 | } | 140 | } |
144 | } else { | 141 | } else { |
145 | WTF = TODO; | 142 | WTF = TODO; |
146 | } | 143 | } |
147 | //console.log("<<< DirectLoginEditingFormValueComponent.renderSelf"); | 144 | //console.log("<<< DirectLoginEditingFormValueComponent.renderSelf"); |
148 | }, | 145 | }, |
149 | 146 | ||
150 | //========================================================================= | 147 | //========================================================================= |
151 | 148 | ||
152 | 'handleSelectChange': function (anEvent) { | 149 | 'handleSelectChange': function (anEvent) { |
153 | //console.log("handleSelectChange", anEvent, anEvent.src(), anEvent.src().value); | 150 | //console.log("handleSelectChange", anEvent, anEvent.src(), anEvent.src().value); |
154 | var options; | 151 | var options; |
155 | 152 | ||
156 | options = {}; | 153 | options = {}; |
157 | 154 | ||
158 | options['fieldName'] = this.formFieldName(); | 155 | options['fieldName'] = this.formFieldName(); |
159 | 156 | ||
160 | if (this.fieldType() == 'checkbox') { | 157 | if (this.fieldType() == 'checkbox') { |
161 | options['selectedValue'] = (this.getElement('checkbox').checked ? 1 : null); | 158 | options['selectedValue'] = (this.getElement('checkbox').checked ? 1 : null); |
162 | } else { | 159 | } else { |
163 | options['selectedValue'] = this.selectedValue(); | 160 | options['selectedValue'] = this.selectedValue(); |
164 | } | 161 | } |
165 | 162 | ||
166 | MochiKit.Signal.signal(this, 'formValueChange', options); | 163 | MochiKit.Signal.signal(this, 'formValueChange', options); |
167 | }, | 164 | }, |
168 | 165 | ||
169 | //========================================================================= | 166 | //========================================================================= |
170 | __syntaxFix__: "syntax fix" | 167 | __syntaxFix__: "syntax fix" |
171 | }); | 168 | }); |
172 | 169 | ||
173 | 170 | ||
174 | 171 | ||
175 | 172 | ||
176 | 173 | ||
177 | 174 | ||
178 | 175 | ||
179 | 176 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js index 1f49575..d8dc941 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._enterLeaveCounter = 0; | 34 | this._enterLeaveCounter = 0; |
38 | this._selectedRowObject = null; | 35 | this._selectedRowObject = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager component"; | 45 | return "Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'renderHeader': function(aTRElement) { | 50 | 'renderHeader': function(aTRElement) { |
54 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.renderHeader.call(this, aTRElement); | 51 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.renderHeader.call(this, aTRElement); |
55 | 52 | ||
56 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', cls:'DirectLoginListPopup', id:this.getId('DirectLoginListPopup'), children:[ | 53 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', cls:'DirectLoginListPopup', id:this.getId('DirectLoginListPopup'), children:[ |
57 | {tag:'div', cls:'DirectLoginListPopup_body', children:[ | 54 | {tag:'div', cls:'DirectLoginListPopup_body', children:[ |
58 | {tag:'ul', id:this.getId('DirectLoginListPopup_list'), children:[ | 55 | {tag:'ul', id:this.getId('DirectLoginListPopup_list'), children:[ |
59 | // {tag:'li', children:[ | 56 | // {tag:'li', children:[ |
60 | // {tag:'img', cls:'favicon', src:'http://www.microsoft.com/favicon.ico'}, | 57 | // {tag:'img', cls:'favicon', src:'http://www.microsoft.com/favicon.ico'}, |
61 | // {tag:'a', href:'#', html:"Google Mail"} | 58 | // {tag:'a', href:'#', html:"Google Mail"} |
62 | // ]}, | 59 | // ]}, |
63 | // ... | 60 | // ... |
64 | ]} | 61 | ]} |
65 | ]}, | 62 | ]}, |
66 | {tag:'div', cls:'DirectLoginListPopup_footer'} | 63 | {tag:'div', cls:'DirectLoginListPopup_footer'} |
67 | ]}); | 64 | ]}); |
68 | 65 | ||
69 | MochiKit.Style.hideElement(this.getId('DirectLoginListPopup')); | 66 | MochiKit.Style.hideElement(this.getId('DirectLoginListPopup')); |
70 | 67 | ||
71 | //BEWARE: use MochiKit.Signal.connect instead of this.connectEvent, as the HEADER is NOT redrawn after each refresh | 68 | //BEWARE: use MochiKit.Signal.connect instead of this.connectEvent, as the HEADER is NOT redrawn after each refresh |
72 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseenter', this, 'handleDirectLoginListPopupEnter'); | 69 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseenter', this, 'handleDirectLoginListPopupEnter'); |
73 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseleave', this, 'handleDirectLoginListPopupLeave'); | 70 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseleave', this, 'handleDirectLoginListPopupLeave'); |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'renderCell': function(aRowElement, anObject) { | 75 | 'renderCell': function(aRowElement, anObject) { |
79 | var i,c; | 76 | var i,c; |
80 | var directLoginsInfo; | 77 | var directLoginsInfo; |
81 | 78 | ||
82 | directLoginsInfo = anObject[this.name()]; | 79 | directLoginsInfo = anObject[this.name()]; |
83 | 80 | ||
84 | TDElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:'card_directLogins'}); | 81 | TDElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:'card_directLogins'}); |
85 | 82 | ||
86 | c = Math.min(2, directLoginsInfo.length); | 83 | c = Math.min(2, directLoginsInfo.length); |
87 | for (i=0; i<c; i++) { | 84 | for (i=0; i<c; i++) { |
88 | var elementID; | 85 | var elementID; |
89 | 86 | ||
90 | elementID = 'directLogin_' + directLoginsInfo[i]['_reference']; | 87 | elementID = 'directLogin_' + directLoginsInfo[i]['_reference']; |
91 | 88 | ||
92 | Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin', children:[ | 89 | Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin', children:[ |
93 | {tag:'div', cls:'card_directLogin_body', children:[ | 90 | {tag:'div', cls:'card_directLogin_body', children:[ |
94 | {tag:'a', href:'#', id:elementID, html:directLoginsInfo[i]['label']} | 91 | {tag:'a', href:'#', id:elementID, html:directLoginsInfo[i]['label']} |
95 | ]} | 92 | ]} |
96 | ]}); | 93 | ]}); |
97 | // MochiKit.Signal.connect(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); | 94 | // MochiKit.Signal.connect(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); |
98 | this.connectEvent(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); | 95 | this.connectEvent(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); |
99 | } | 96 | } |
100 | 97 | ||
101 | if (directLoginsInfo.length > 2) { | 98 | if (directLoginsInfo.length > 2) { |
102 | var ellipsesElement; | 99 | var ellipsesElement; |
103 | 100 | ||
104 | ellipsesElement = Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin_ellipses', children:[ | 101 | ellipsesElement = Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin_ellipses', children:[ |
105 | {tag:'div', cls:'card_directLogin_ellipses_body', children:[ | 102 | {tag:'div', cls:'card_directLogin_ellipses_body', children:[ |
106 | {tag:'span', html:'…'} | 103 | {tag:'span', html:'…'} |
107 | ]} | 104 | ]} |
108 | ]}); | 105 | ]}); |
109 | 106 | ||
110 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseenter', MochiKit.Base.method(this, 'handleEllipsesEnter', anObject)); | 107 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseenter', MochiKit.Base.method(this, 'handleEllipsesEnter', anObject)); |
111 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseleave', MochiKit.Base.method(this, 'handleEllipsesLeave')); | 108 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseleave', MochiKit.Base.method(this, 'handleEllipsesLeave')); |
112 | // MochiKit.Signal.connect(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); | 109 | // MochiKit.Signal.connect(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); |
113 | this.connectEvent(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); | 110 | this.connectEvent(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); |
114 | } | 111 | } |
115 | // MochiKit.Signal.connect(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); | 112 | // MochiKit.Signal.connect(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); |
116 | this.connectEvent(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); | 113 | this.connectEvent(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); |
117 | 114 | ||
118 | }, | 115 | }, |
119 | 116 | ||
120 | //========================================================================= | 117 | //========================================================================= |
121 | /* | 118 | /* |
122 | 'handleEllipsesEnter': function (aRecordInfo, anEvent) { | 119 | 'handleEllipsesEnter': function (aRecordInfo, anEvent) { |
123 | this._enterLeaveCounter ++; | 120 | this._enterLeaveCounter ++; |
124 | if (this._enterLeaveCounter > 2) { | 121 | if (this._enterLeaveCounter > 2) { |
125 | this._enterLeaveCounter = 2; | 122 | this._enterLeaveCounter = 2; |
126 | } | 123 | } |
127 | 124 | ||
128 | if (this._enterLeaveCounter == 1) { | 125 | if (this._enterLeaveCounter == 1) { |
129 | this.showDirectLoginListPopup(aRecordInfo, anEvent.src()); | 126 | this.showDirectLoginListPopup(aRecordInfo, anEvent.src()); |
130 | } | 127 | } |
131 | }, | 128 | }, |
132 | 129 | ||
133 | 'handleEllipsesLeave': function (anEvent) { | 130 | 'handleEllipsesLeave': function (anEvent) { |
134 | this._enterLeaveCounter --; | 131 | this._enterLeaveCounter --; |
135 | 132 | ||
136 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { | 133 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { |
137 | if (this._enterLeaveCounter == 0) { | 134 | if (this._enterLeaveCounter == 0) { |
138 | this.hideDirectLoginListPopup(); | 135 | this.hideDirectLoginListPopup(); |
139 | } | 136 | } |
140 | }, this)) | 137 | }, this)) |
141 | }, | 138 | }, |
142 | */ | 139 | */ |
143 | //------------------------------------------------------------------------- | 140 | //------------------------------------------------------------------------- |
144 | 141 | ||
145 | 'handleTDEnter': function (aRecordInfo, anEvent) { | 142 | 'handleTDEnter': function (aRecordInfo, anEvent) { |
146 | if (MochiKit.Selector.findChildElements(anEvent.src(), ['div.card_directLogin_ellipses']).length > 0) { | 143 | if (MochiKit.Selector.findChildElements(anEvent.src(), ['div.card_directLogin_ellipses']).length > 0) { |
147 | this._enterLeaveCounter ++; | 144 | this._enterLeaveCounter ++; |
148 | if (this._enterLeaveCounter > 2) { | 145 | if (this._enterLeaveCounter > 2) { |
149 | this._enterLeaveCounter = 2; | 146 | this._enterLeaveCounter = 2; |
150 | } | 147 | } |
151 | 148 | ||
152 | if (this._enterLeaveCounter == 1) { | 149 | if (this._enterLeaveCounter == 1) { |
153 | this.showDirectLoginListPopup(aRecordInfo, anEvent.src()); | 150 | this.showDirectLoginListPopup(aRecordInfo, anEvent.src()); |
154 | } | 151 | } |
155 | } else { | 152 | } else { |
156 | if (this._selectedRowObject != null) { | 153 | if (this._selectedRowObject != null) { |
157 | this.hideDirectLoginListPopup(); | 154 | this.hideDirectLoginListPopup(); |
158 | } | 155 | } |
159 | } | 156 | } |
160 | }, | 157 | }, |
161 | 158 | ||
162 | 'handleTDLeave': function (anEvent) { | 159 | 'handleTDLeave': function (anEvent) { |
163 | this._enterLeaveCounter --; | 160 | this._enterLeaveCounter --; |
164 | if (this._enterLeaveCounter < 0) { | 161 | if (this._enterLeaveCounter < 0) { |
165 | this._enterLeaveCounter = 0; | 162 | this._enterLeaveCounter = 0; |
166 | } | 163 | } |
167 | 164 | ||
168 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { | 165 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { |
169 | if (this._enterLeaveCounter == 0) { | 166 | if (this._enterLeaveCounter == 0) { |
170 | this.hideDirectLoginListPopup(); | 167 | this.hideDirectLoginListPopup(); |
171 | } | 168 | } |
172 | }, this)) | 169 | }, this)) |
173 | }, | 170 | }, |
174 | 171 | ||
175 | //------------------------------------------------------------------------- | 172 | //------------------------------------------------------------------------- |
176 | 173 | ||
177 | 'handleDirectLoginListPopupEnter': function (anEvent) { | 174 | 'handleDirectLoginListPopupEnter': function (anEvent) { |
178 | this._enterLeaveCounter ++; | 175 | this._enterLeaveCounter ++; |
179 | if (this._enterLeaveCounter > 2) { | 176 | if (this._enterLeaveCounter > 2) { |
180 | this._enterLeaveCounter = 2; | 177 | this._enterLeaveCounter = 2; |
181 | } | 178 | } |
182 | }, | 179 | }, |
183 | 180 | ||
184 | 'handleDirectLoginListPopupLeave': function (anEvent) { | 181 | 'handleDirectLoginListPopupLeave': function (anEvent) { |
185 | this._enterLeaveCounter --; | 182 | this._enterLeaveCounter --; |
186 | if (this._enterLeaveCounter < 0) { | 183 | if (this._enterLeaveCounter < 0) { |
187 | this._enterLeaveCounter = 0; | 184 | this._enterLeaveCounter = 0; |
188 | } | 185 | } |
189 | 186 | ||
190 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { | 187 | MochiKit.Async.callLater(0.3, MochiKit.Base.bind(function () { |
191 | if (this._enterLeaveCounter == 0) { | 188 | if (this._enterLeaveCounter == 0) { |
192 | this.hideDirectLoginListPopup(); | 189 | this.hideDirectLoginListPopup(); |
193 | } | 190 | } |
194 | }, this)) | 191 | }, this)) |
195 | }, | 192 | }, |
196 | 193 | ||
197 | //========================================================================= | 194 | //========================================================================= |
198 | 195 | ||
199 | 'showDirectLoginListPopup': function (aRecordInfo, anElement) { | 196 | 'showDirectLoginListPopup': function (aRecordInfo, anElement) { |
200 | var position; | 197 | var position; |
201 | var directLoginsInfo; | 198 | var directLoginsInfo; |
202 | var directLoginsListElement; | 199 | var directLoginsListElement; |
203 | var ellipsesElement; | 200 | var ellipsesElement; |
204 | 201 | ||
205 | 202 | ||
206 | ellipsesElement = MochiKit.Selector.findChildElements(anElement, ['div.card_directLogin_ellipses'])[0]; | 203 | ellipsesElement = MochiKit.Selector.findChildElements(anElement, ['div.card_directLogin_ellipses'])[0]; |
207 | position = MochiKit.Style.getElementPosition(ellipsesElement); | 204 | position = MochiKit.Style.getElementPosition(ellipsesElement); |
208 | // position = MochiKit.Style.getElementPosition(anElement); | 205 | // position = MochiKit.Style.getElementPosition(anElement); |
209 | position.x += 14; | 206 | position.x += 14; |
210 | position.y -= 26; | 207 | position.y -= 26; |
211 | 208 | ||
212 | MochiKit.Style.setElementPosition(this.getId('DirectLoginListPopup'), position /*[, units='px'] */); | 209 | MochiKit.Style.setElementPosition(this.getId('DirectLoginListPopup'), position /*[, units='px'] */); |
213 | 210 | ||
214 | directLoginsListElement = this.getElement('DirectLoginListPopup_list'); | 211 | directLoginsListElement = this.getElement('DirectLoginListPopup_list'); |
215 | directLoginsListElement.innerHTML = ''; | 212 | directLoginsListElement.innerHTML = ''; |
216 | 213 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js index 19d1635..6297002 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js | |||
@@ -1,89 +1,86 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.FaviconColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.FaviconColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.FaviconColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.FaviconColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.FaviconColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.FaviconColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | varfaviconImageElement; | 48 | varfaviconImageElement; |
52 | var faviconUrl; | 49 | var faviconUrl; |
53 | 50 | ||
54 | faviconImageElement = this.getId('favicon'); | 51 | faviconImageElement = this.getId('favicon'); |
55 | faviconUrl = anObject[this.name()]; | 52 | faviconUrl = anObject[this.name()]; |
56 | 53 | ||
57 | if (faviconUrl == null) { | 54 | if (faviconUrl == null) { |
58 | faviconUrl = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 55 | faviconUrl = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
59 | } | 56 | } |
60 | 57 | ||
61 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 58 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
62 | {tag:'img', id:faviconImageElement, src:faviconUrl} | 59 | {tag:'img', id:faviconImageElement, src:faviconUrl} |
63 | ]}); | 60 | ]}); |
64 | 61 | ||
65 | MochiKit.Signal.connect(faviconImageElement, 'onload', this, 'handleLoadedFaviconImage'); | 62 | MochiKit.Signal.connect(faviconImageElement, 'onload', this, 'handleLoadedFaviconImage'); |
66 | MochiKit.Signal.connect(faviconImageElement, 'onerror', this, 'handleMissingFaviconImage'); | 63 | MochiKit.Signal.connect(faviconImageElement, 'onerror', this, 'handleMissingFaviconImage'); |
67 | MochiKit.Signal.connect(faviconImageElement, 'onabort', this, 'handleMissingFaviconImage'); | 64 | MochiKit.Signal.connect(faviconImageElement, 'onabort', this, 'handleMissingFaviconImage'); |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //----------------------------------------------------- | 67 | //----------------------------------------------------- |
71 | 68 | ||
72 | 'handleLoadedFaviconImage': function(anEvent) { | 69 | 'handleLoadedFaviconImage': function(anEvent) { |
73 | MochiKit.Signal.disconnectAllTo(anEvent.src()); | 70 | MochiKit.Signal.disconnectAllTo(anEvent.src()); |
74 | if (anEvent.src().complete == false) { | 71 | if (anEvent.src().complete == false) { |
75 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 72 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
76 | } | 73 | } |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //----------------------------------------------------- | 76 | //----------------------------------------------------- |
80 | 77 | ||
81 | 'handleMissingFaviconImage': function(anEvent) { | 78 | 'handleMissingFaviconImage': function(anEvent) { |
82 | MochiKit.Signal.disconnectAllTo(anEvent.src()); | 79 | MochiKit.Signal.disconnectAllTo(anEvent.src()); |
83 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 80 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------- | 83 | //----------------------------------------------------- |
87 | '__syntax_fix__' : 'syntax fix' | 84 | '__syntax_fix__' : 'syntax fix' |
88 | }); | 85 | }); |
89 | 86 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js index 8b3e6c9..51d55f4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.GridComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.GridComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.GridComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.GridComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._columnsManagers = args.columnsManagers; | 33 | this._columnsManagers = args.columnsManagers; |
37 | 34 | ||
38 | this._rowsObjects = []; | 35 | this._rowsObjects = []; |
39 | this._noRowsGridComponent = null; | 36 | this._noRowsGridComponent = null; |
40 | 37 | ||
41 | this._slots = { | 38 | this._slots = { |
42 | 'headerSlot':this.getId('headerSlot') | 39 | 'headerSlot':this.getId('headerSlot') |
43 | }; | 40 | }; |
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | //============================================================================= | 45 | //============================================================================= |
49 | 46 | ||
50 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'toString': function () { | 51 | 'toString': function () { |
55 | return "Clipperz.PM.UI.Web.Components.GridComponent component"; | 52 | return "Clipperz.PM.UI.Web.Components.GridComponent component"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'rows': function () { | 57 | 'rows': function () { |
61 | throw Clipperz.Base.exception.AbstractMethod; | 58 | throw Clipperz.Base.exception.AbstractMethod; |
62 | // return this._rows; | 59 | // return this._rows; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'columnsManagers': function () { | 64 | 'columnsManagers': function () { |
68 | return this._columnsManagers; | 65 | return this._columnsManagers; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'renderSelf': function(/*aContainer, aPosition*/) { | 70 | 'renderSelf': function(/*aContainer, aPosition*/) { |
74 | this.append(this.element(), [ | 71 | this.append(this.element(), [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'form', id:this.getId('searchForm'), cls:'search', children:[ | 73 | {tag:'form', id:this.getId('searchForm'), cls:'search', children:[ |
77 | {tag:'div', cls:'search', children:[ | 74 | {tag:'div', cls:'search', children:[ |
78 | {tag:'input', type:'text', id:this.getId('search'), cls:'search', placeholder:"search", name:'textToSearch'/*, value:"clipperz"*/} | 75 | {tag:'input', type:'text', id:this.getId('search'), cls:'search', placeholder:"search", name:'textToSearch'/*, value:"clipperz"*/} |
79 | ]}, | 76 | ]}, |
80 | {tag:'div', cls:'clearSearchButton', id:this.getId('clearSearch')}, | 77 | {tag:'div', cls:'clearSearchButton', id:this.getId('clearSearch')}, |
81 | // {tag:'input', type:'button', cls:'searchButton', name:'searchButton', value:"search"}, | 78 | // {tag:'input', type:'button', cls:'searchButton', name:'searchButton', value:"search"}, |
82 | {tag:'div', cls:'headerSlot', id:this.getId('headerSlot')} | 79 | {tag:'div', cls:'headerSlot', id:this.getId('headerSlot')} |
83 | ]} | 80 | ]} |
84 | ]}, | 81 | ]}, |
85 | {tag:'div', cls:'body', children:[ | 82 | {tag:'div', cls:'body', children:[ |
86 | {tag:'div', cls:'rows', id:this.getId('rows'), children:[ | 83 | {tag:'div', cls:'rows', id:this.getId('rows'), children:[ |
87 | {tag:'table', cellpadding:'0', cellspacing:'0', cls:'rows', children:[ | 84 | {tag:'table', cellpadding:'0', cellspacing:'0', cls:'rows', children:[ |
88 | {tag:'thead', children:[ | 85 | {tag:'thead', children:[ |
89 | {tag:'tr', id:this.getId('thead_tr'), children:[]} | 86 | {tag:'tr', id:this.getId('thead_tr'), children:[]} |
90 | ]}, | 87 | ]}, |
91 | {tag:'tbody', id:this.getId('gridRows'), children:[]} | 88 | {tag:'tbody', id:this.getId('gridRows'), children:[]} |
92 | ]} | 89 | ]} |
93 | ]}, | 90 | ]}, |
94 | {tag:'div', cls:'noRowsBlock', id:this.getId('noRowsBlock'), children:[]} | 91 | {tag:'div', cls:'noRowsBlock', id:this.getId('noRowsBlock'), children:[]} |
95 | ]}, | 92 | ]}, |
96 | {tag:'div', cls:'footer'} | 93 | {tag:'div', cls:'footer'} |
97 | ]); | 94 | ]); |
98 | 95 | ||
99 | this.renderHeader(); | 96 | this.renderHeader(); |
100 | MochiKit.Signal.connect(this.getId('clearSearch'), 'onclick', this, 'clearSearchHandler'); | 97 | MochiKit.Signal.connect(this.getId('clearSearch'), 'onclick', this, 'clearSearchHandler'); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //------------------------------------------------------------------------- | 100 | //------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'renderHeader': function () { | 102 | 'renderHeader': function () { |
106 | var headerElement; | 103 | var headerElement; |
107 | 104 | ||
108 | headerElement = this.getElement('thead_tr'); | 105 | headerElement = this.getElement('thead_tr'); |
109 | headerElement.innerHTML = ""; | 106 | headerElement.innerHTML = ""; |
110 | 107 | ||
111 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 108 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
112 | aColumnManager.renderHeader(headerElement); | 109 | aColumnManager.renderHeader(headerElement); |
113 | }); | 110 | }); |
114 | }, | 111 | }, |
115 | 112 | ||
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'update': function (someObjects) { | 115 | 'update': function (someObjects) { |
119 | this._rowsObjects = someObjects | 116 | this._rowsObjects = someObjects |
120 | this.refresh(); | 117 | this.refresh(); |
121 | this.focus(); | 118 | this.focus(); |
122 | }, | 119 | }, |
123 | 120 | ||
124 | 'focus': function () { | 121 | 'focus': function () { |
125 | this.getElement('search').focus(); | 122 | this.getElement('search').focus(); |
126 | }, | 123 | }, |
127 | 124 | ||
128 | //------------------------------------------------------------------------- | 125 | //------------------------------------------------------------------------- |
129 | 126 | ||
130 | 'startSearch': function () { | 127 | 'startSearch': function () { |
131 | //console.log("--> startSearch"); | 128 | //console.log("--> startSearch"); |
132 | MochiKit.DOM.addElementClass(this.getElement('search'), 'running'); | 129 | MochiKit.DOM.addElementClass(this.getElement('search'), 'running'); |
133 | }, | 130 | }, |
134 | 131 | ||
135 | 'endSearch': function () { | 132 | 'endSearch': function () { |
136 | MochiKit.DOM.removeElementClass(this.getElement('search'), 'running'); | 133 | MochiKit.DOM.removeElementClass(this.getElement('search'), 'running'); |
137 | //console.log("<-- startSearch"); | 134 | //console.log("<-- startSearch"); |
138 | }, | 135 | }, |
139 | 136 | ||
140 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
141 | 138 | ||
142 | 'disconnectColumnManagersRowsSignals': function () { | 139 | 'disconnectColumnManagersRowsSignals': function () { |
143 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 140 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
144 | aColumnManager.disconnectRowsSignals(); | 141 | aColumnManager.disconnectRowsSignals(); |
145 | }); | 142 | }); |
146 | }, | 143 | }, |
147 | 144 | ||
148 | //------------------------------------------------------------------------- | 145 | //------------------------------------------------------------------------- |
149 | 146 | ||
150 | 'refresh': function () { | 147 | 'refresh': function () { |
151 | var gridRowsElement; | 148 | var gridRowsElement; |
152 | var rowClass; | 149 | var rowClass; |
153 | 150 | ||
154 | this.disconnectColumnManagersRowsSignals(); | 151 | this.disconnectColumnManagersRowsSignals(); |
155 | 152 | ||
156 | { | 153 | { |
157 | MochiKit.DOM.removeElementClass(this.getElement('search'), 'disabled'); | 154 | MochiKit.DOM.removeElementClass(this.getElement('search'), 'disabled'); |
158 | // MochiKit.DOM.setNodeAttribute(this.getElement('search'), 'disabled', null); | 155 | // MochiKit.DOM.setNodeAttribute(this.getElement('search'), 'disabled', null); |
159 | MochiKit.DOM.removeElementClass(this.element(), 'empty'); | 156 | MochiKit.DOM.removeElementClass(this.element(), 'empty'); |
160 | MochiKit.DOM.removeElementClass(this.element(), 'noRows'); | 157 | MochiKit.DOM.removeElementClass(this.element(), 'noRows'); |
161 | } | 158 | } |
162 | 159 | ||
163 | 160 | ||
164 | gridRowsElement = this.getElement('gridRows'); | 161 | gridRowsElement = this.getElement('gridRows'); |
165 | gridRowsElement.innerHTML = ""; | 162 | gridRowsElement.innerHTML = ""; |
166 | 163 | ||
167 | MochiKit.DOM.removeElementClass(this.element(), 'empty'); | 164 | MochiKit.DOM.removeElementClass(this.element(), 'empty'); |
168 | 165 | ||
169 | rowClass = 'odd'; | 166 | rowClass = 'odd'; |
170 | MochiKit.Iter.forEach(this._rowsObjects, MochiKit.Base.bind(function (aRowObject) { | 167 | MochiKit.Iter.forEach(this._rowsObjects, MochiKit.Base.bind(function (aRowObject) { |
171 | var cardRowElement; | 168 | var cardRowElement; |
172 | 169 | ||
173 | cardRowElement = this.append(gridRowsElement, {tag:'tr', id:this.getId(aRowObject['_reference']), cls:rowClass}); | 170 | cardRowElement = this.append(gridRowsElement, {tag:'tr', id:this.getId(aRowObject['_reference']), cls:rowClass}); |
174 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 171 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
175 | aColumnManager.renderCell(cardRowElement, aRowObject); | 172 | aColumnManager.renderCell(cardRowElement, aRowObject); |
176 | }); | 173 | }); |
177 | 174 | ||
178 | rowClass = (rowClass == 'odd') ? 'even' : 'odd'; | 175 | rowClass = (rowClass == 'odd') ? 'even' : 'odd'; |
179 | }, this)); | 176 | }, this)); |
180 | }, | 177 | }, |
181 | 178 | ||
182 | //----------------------------------------------------------------------------- | 179 | //----------------------------------------------------------------------------- |
183 | 180 | ||
184 | 'filterElement': function () { | 181 | 'filterElement': function () { |
185 | return this.getElement('search'); | 182 | return this.getElement('search'); |
186 | }, | 183 | }, |
187 | 184 | ||
188 | //------------------------------------------------------------------------- | 185 | //------------------------------------------------------------------------- |
189 | 186 | ||
190 | 'shouldShowElementWhileRendering': function () { | 187 | 'shouldShowElementWhileRendering': function () { |
191 | return false; | 188 | return false; |
192 | }, | 189 | }, |
193 | 190 | ||
194 | //------------------------------------------------------------------------- | 191 | //------------------------------------------------------------------------- |
195 | 192 | ||
196 | 'selectRow': function (aRowObject) { | 193 | 'selectRow': function (aRowObject) { |
197 | MochiKit.DOM.addElementClass(this.getId(aRowObject['_reference']), 'selected'); | 194 | MochiKit.DOM.addElementClass(this.getId(aRowObject['_reference']), 'selected'); |
198 | }, | 195 | }, |
199 | 196 | ||
200 | 'unselectRow': function (aRowObject) { | 197 | 'unselectRow': function (aRowObject) { |
201 | MochiKit.DOM.removeElementClass(this.getId(aRowObject['_reference']), 'selected'); | 198 | MochiKit.DOM.removeElementClass(this.getId(aRowObject['_reference']), 'selected'); |
202 | }, | 199 | }, |
203 | 200 | ||
204 | //------------------------------------------------------------------------- | 201 | //------------------------------------------------------------------------- |
205 | /* | 202 | /* |
206 | 'passOpenDirectLogin': function(aDirectLoginReferenceId) { | 203 | 'passOpenDirectLogin': function(aDirectLoginReferenceId) { |
207 | MochiKit.Signal.signal(this, 'openDirectLogin', aDirectLoginReferenceId); | 204 | MochiKit.Signal.signal(this, 'openDirectLogin', aDirectLoginReferenceId); |
208 | }, | 205 | }, |
209 | */ | 206 | */ |
210 | //------------------------------------------------------------------------- | 207 | //------------------------------------------------------------------------- |
211 | 208 | ||
212 | 'clearSearchHandler': function (anEvent) { | 209 | 'clearSearchHandler': function (anEvent) { |
213 | var searchElement; | 210 | var searchElement; |
214 | 211 | ||
215 | anEvent.preventDefault(); | 212 | anEvent.preventDefault(); |
216 | 213 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js index 07b8dcc..3e03fcf 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js | |||
@@ -1,68 +1,65 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.ImageColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.ImageColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ImageColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ImageColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.ImageColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.ImageColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 48 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
52 | {tag:'img', src:anObject[this.name()]} | 49 | {tag:'img', src:anObject[this.name()]} |
53 | ]}); | 50 | ]}); |
54 | 51 | ||
55 | // return Clipperz.Async.callbacks("ImageColumnManager.renderCell", [ | 52 | // return Clipperz.Async.callbacks("ImageColumnManager.renderCell", [ |
56 | // this.selector(), | 53 | // this.selector(), |
57 | // MochiKit.Base.bind(function (aValue) { | 54 | // MochiKit.Base.bind(function (aValue) { |
58 | // Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 55 | // Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
59 | // {tag:'img', src:aValue} | 56 | // {tag:'img', src:aValue} |
60 | // ]}); | 57 | // ]}); |
61 | // }, this) | 58 | // }, this) |
62 | // ], {trace:false}, anObject); | 59 | // ], {trace:false}, anObject); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------- | 62 | //----------------------------------------------------- |
66 | '__syntax_fix__' : 'syntax fix' | 63 | '__syntax_fix__' : 'syntax fix' |
67 | }); | 64 | }); |
68 | 65 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js index e833190..f3f9cd5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js | |||
@@ -1,92 +1,89 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.LinkColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.LinkColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._actionMethod = args.actionMethod || null; | 34 | this._actionMethod = args.actionMethod || null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LinkColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LinkColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 44 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'actionMethod': function () { | 49 | 'actionMethod': function () { |
53 | return this._actionMethod; | 50 | return this._actionMethod; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'renderCell': function(aRowElement, anObject) { | 55 | 'renderCell': function(aRowElement, anObject) { |
59 | vartdElement; | 56 | vartdElement; |
60 | varlinkElement; | 57 | varlinkElement; |
61 | 58 | ||
62 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 59 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
63 | {tag:'span', children:[ | 60 | {tag:'span', children:[ |
64 | {tag:'a', href:'#', html:anObject[this.name()]} | 61 | {tag:'a', href:'#', html:anObject[this.name()]} |
65 | ]} | 62 | ]} |
66 | ]}); | 63 | ]}); |
67 | 64 | ||
68 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 65 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
69 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 66 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
70 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 67 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //----------------------------------------------------- | 70 | //----------------------------------------------------- |
74 | 71 | ||
75 | 'handleLinkClick': function (anObject, anEvent) { | 72 | 'handleLinkClick': function (anObject, anEvent) { |
76 | anEvent.preventDefault(); | 73 | anEvent.preventDefault(); |
77 | 74 | ||
78 | if (this.actionMethod() != null) { | 75 | if (this.actionMethod() != null) { |
79 | var deferredResult; | 76 | var deferredResult; |
80 | 77 | ||
81 | deferredResult = new Clipperz.Async.Deferred("LinkColumnManager.handleLinkClick", {trace:false}); | 78 | deferredResult = new Clipperz.Async.Deferred("LinkColumnManager.handleLinkClick", {trace:false}); |
82 | // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'selectRow', anObject); | 79 | // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'selectRow', anObject); |
83 | deferredResult.addCallback(this.actionMethod(), anObject, anEvent); | 80 | deferredResult.addCallback(this.actionMethod(), anObject, anEvent); |
84 | // deferredResult.addBothPass(MochiKit.Signal.signal, this, 'unselectRow', anObject); | 81 | // deferredResult.addBothPass(MochiKit.Signal.signal, this, 'unselectRow', anObject); |
85 | deferredResult.callback(); | 82 | deferredResult.callback(); |
86 | } | 83 | } |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //----------------------------------------------------- | 86 | //----------------------------------------------------- |
90 | '__syntax_fix__' : 'syntax fix' | 87 | '__syntax_fix__' : 'syntax fix' |
91 | }); | 88 | }); |
92 | 89 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js index de20853..389d876 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js | |||
@@ -1,203 +1,200 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginForm = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginForm = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._autocomplete = args.autocomplete || 'off'; | 31 | this._autocomplete = args.autocomplete || 'off'; |
35 | 32 | ||
36 | Clipperz.PM.UI.Web.Components.LoginForm.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.UI.Web.Components.LoginForm.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | this._slots = { | 35 | this._slots = { |
39 | 'passphraseEntropy':this.getId('passphraseEntropy') | 36 | 'passphraseEntropy':this.getId('passphraseEntropy') |
40 | }; | 37 | }; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.LoginForm component"; | 49 | return "Clipperz.PM.UI.Web.Components.LoginForm component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | 'autocomplete': function () { | 52 | 'autocomplete': function () { |
56 | return this._autocomplete; | 53 | return this._autocomplete; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'renderSelf': function() { | 58 | 'renderSelf': function() { |
62 | this.append(this.element(), {tag:'div', id:'loginBox', children:[ | 59 | this.append(this.element(), {tag:'div', id:'loginBox', children:[ |
63 | {tag:'div', cls:'header'}, | 60 | {tag:'div', cls:'header'}, |
64 | {tag:'div', cls:'body', id:this.getId('body'), children:[ | 61 | {tag:'div', cls:'body', id:this.getId('body'), children:[ |
65 | {tag:'div', id:this.getId('loginForm'), children:[ | 62 | {tag:'div', id:this.getId('loginForm'), children:[ |
66 | {tag:'div', children:[ | 63 | {tag:'div', children:[ |
67 | {tag:'h4', html:'Login'}, | 64 | {tag:'h4', html:'Login'}, |
68 | // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ | 65 | // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ |
69 | {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ | 66 | {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ |
70 | {tag:'label', html:'username', 'for':this.getId('usernameField')}, | 67 | {tag:'label', html:'username', 'for':this.getId('usernameField')}, |
71 | {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'/*, value:'joe'*/}, | 68 | {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'/*, value:'joe'*/}, |
72 | {tag:'ul', id:this.getId('passwordOptions'), children:[ | 69 | {tag:'ul', id:this.getId('passwordOptions'), children:[ |
73 | {tag:'li', id:this.getId('passphraseOption'), children:[ | 70 | {tag:'li', id:this.getId('passphraseOption'), children:[ |
74 | {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, | 71 | {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, |
75 | {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'/*, value:'clipperz'*/} | 72 | {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'/*, value:'clipperz'*/} |
76 | ]} //, | 73 | ]} //, |
77 | /* | 74 | /* |
78 | {tag:'li', id:this.getId('otpOption'), children:[ | 75 | {tag:'li', id:this.getId('otpOption'), children:[ |
79 | {tag:'label', html:'one-time password', 'for':this.getId('otpField_1')}, | 76 | {tag:'label', html:'one-time password', 'for':this.getId('otpField_1')}, |
80 | {tag:'input', id:this.getId('otpField_1'), type:'text', cls:'otp', value:'abcd-efgh'}, | 77 | {tag:'input', id:this.getId('otpField_1'), type:'text', cls:'otp', value:'abcd-efgh'}, |
81 | {tag:'input', id:this.getId('otpField_2'), type:'text', cls:'otp', value:'abcd-efgh'}, | 78 | {tag:'input', id:this.getId('otpField_2'), type:'text', cls:'otp', value:'abcd-efgh'}, |
82 | {tag:'input', id:this.getId('otpField_3'), type:'text', cls:'otp', value:'abcd-efgh'}, | 79 | {tag:'input', id:this.getId('otpField_3'), type:'text', cls:'otp', value:'abcd-efgh'}, |
83 | {tag:'input', id:this.getId('otpField_4'), type:'text', cls:'otp', value:'abcd-efgh'} | 80 | {tag:'input', id:this.getId('otpField_4'), type:'text', cls:'otp', value:'abcd-efgh'} |
84 | ]} | 81 | ]} |
85 | */ | 82 | */ |
86 | ]}, | 83 | ]}, |
87 | // {tag:'input', id:this.getId('otpCheckbox'), type:'checkbox', cls:'checkbox'}, | 84 | // {tag:'input', id:this.getId('otpCheckbox'), type:'checkbox', cls:'checkbox'}, |
88 | // {tag:'label', html:'use a one-time passphrase', 'for':this.getId('otpCheckbox'), cls:'checkbox'}, | 85 | // {tag:'label', html:'use a one-time passphrase', 'for':this.getId('otpCheckbox'), cls:'checkbox'}, |
89 | 86 | ||
90 | {tag:'div', cls:'translations', children:[ | 87 | {tag:'div', cls:'translations', children:[ |
91 | {tag:'h4', html:'choose your language'}, | 88 | {tag:'h4', html:'choose your language'}, |
92 | {tag:'ul', children:[ | 89 | {tag:'ul', children:[ |
93 | {tag:'li', cls:'selected', html:'english'}, | 90 | {tag:'li', cls:'selected', html:'english'}, |
94 | {tag:'li', html:'italiano'}, | 91 | {tag:'li', html:'italiano'}, |
95 | {tag:'li', html:'dutch'}, | 92 | {tag:'li', html:'dutch'}, |
96 | {tag:'li', html:'french'}, | 93 | {tag:'li', html:'french'}, |
97 | {tag:'li', html:'spanish'}, | 94 | {tag:'li', html:'spanish'}, |
98 | {tag:'li', html:'chinese'}, | 95 | {tag:'li', html:'chinese'}, |
99 | {tag:'li', html:'japanese'}, | 96 | {tag:'li', html:'japanese'}, |
100 | {tag:'li', html:'portugal'}, | 97 | {tag:'li', html:'portugal'}, |
101 | {tag:'li', html:'arabic'} | 98 | {tag:'li', html:'arabic'} |
102 | ]} | 99 | ]} |
103 | ]}, | 100 | ]}, |
104 | 101 | ||
105 | {tag:'input', id:this.getId('submitButton'), type:'submit', value:'login', cls:'submit'} | 102 | {tag:'input', id:this.getId('submitButton'), type:'submit', value:'login', cls:'submit'} |
106 | ]} | 103 | ]} |
107 | ]} | 104 | ]} |
108 | ]} | 105 | ]} |
109 | ]}, | 106 | ]}, |
110 | {tag:'div', cls:'footer'} | 107 | {tag:'div', cls:'footer'} |
111 | ]}); | 108 | ]}); |
112 | 109 | ||
113 | if (this.autocomplete() == 'off') { | 110 | if (this.autocomplete() == 'off') { |
114 | MochiKit.DOM.updateNodeAttributes(this.getElement('form'), {autocomplete:'off'}); | 111 | MochiKit.DOM.updateNodeAttributes(this.getElement('form'), {autocomplete:'off'}); |
115 | } | 112 | } |
116 | 113 | ||
117 | // Clipperz.Style.setBackgroundGradient(this.getElement('body'), {from:"#ff9955", to:"#ff6622"}) | 114 | // Clipperz.Style.setBackgroundGradient(this.getElement('body'), {from:"#ff9955", to:"#ff6622"}) |
118 | 115 | ||
119 | // this.setEntropyDisplay(new Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay(this.getElement('passphraseField'))); | 116 | // this.setEntropyDisplay(new Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay(this.getElement('passphraseField'))); |
120 | 117 | ||
121 | // MochiKit.Signal.connect(this.getId('otpCheckbox'), 'onclick', this, 'togglePasswordFields'); | 118 | // MochiKit.Signal.connect(this.getId('otpCheckbox'), 'onclick', this, 'togglePasswordFields'); |
122 | // this.showPassphraseField(); | 119 | // this.showPassphraseField(); |
123 | 120 | ||
124 | this.getElement('usernameField').focus(); | 121 | this.getElement('usernameField').focus(); |
125 | 122 | ||
126 | MochiKit.Signal.connect(this.getElement('loginForm'), 'onsubmit', this, 'loginEventHandler'); | 123 | MochiKit.Signal.connect(this.getElement('loginForm'), 'onsubmit', this, 'loginEventHandler'); |
127 | }, | 124 | }, |
128 | 125 | ||
129 | //----------------------------------------------------------------------------- | 126 | //----------------------------------------------------------------------------- |
130 | /* | 127 | /* |
131 | 'togglePasswordFields': function(anEvent) { | 128 | 'togglePasswordFields': function(anEvent) { |
132 | var shouldUseOTP; | 129 | var shouldUseOTP; |
133 | 130 | ||
134 | shouldUseOTP = this.getElement('otpCheckbox').checked; | 131 | shouldUseOTP = this.getElement('otpCheckbox').checked; |
135 | 132 | ||
136 | if (shouldUseOTP == false) { | 133 | if (shouldUseOTP == false) { |
137 | this.showPassphraseField(); | 134 | this.showPassphraseField(); |
138 | } else { | 135 | } else { |
139 | this.showOTPFields(); | 136 | this.showOTPFields(); |
140 | } | 137 | } |
141 | }, | 138 | }, |
142 | */ | 139 | */ |
143 | //----------------------------------------------------------------------------- | 140 | //----------------------------------------------------------------------------- |
144 | /* | 141 | /* |
145 | 'showPassphraseField': function() { | 142 | 'showPassphraseField': function() { |
146 | this.showElement('passphraseOption'); | 143 | this.showElement('passphraseOption'); |
147 | this.hideElement('otpOption'); | 144 | this.hideElement('otpOption'); |
148 | }, | 145 | }, |
149 | */ | 146 | */ |
150 | //----------------------------------------------------------------------------- | 147 | //----------------------------------------------------------------------------- |
151 | 148 | ||
152 | 'focusOnPassphraseField': function () { | 149 | 'focusOnPassphraseField': function () { |
153 | this.getElement('passphraseField').focus(); | 150 | this.getElement('passphraseField').focus(); |
154 | this.getElement('passphraseField').select(); | 151 | this.getElement('passphraseField').select(); |
155 | }, | 152 | }, |
156 | 153 | ||
157 | //----------------------------------------------------------------------------- | 154 | //----------------------------------------------------------------------------- |
158 | /* | 155 | /* |
159 | 'showOTPFields': function() { | 156 | 'showOTPFields': function() { |
160 | this.hideElement('passphraseOption'); | 157 | this.hideElement('passphraseOption'); |
161 | this.showElement('otpOption'); | 158 | this.showElement('otpOption'); |
162 | }, | 159 | }, |
163 | */ | 160 | */ |
164 | //------------------------------------------------------------------------- | 161 | //------------------------------------------------------------------------- |
165 | 162 | ||
166 | 'loginEventHandler': function(anEvent) { | 163 | 'loginEventHandler': function(anEvent) { |
167 | varusername; | 164 | varusername; |
168 | var passphrase; | 165 | var passphrase; |
169 | // var shouldUseOTP; | 166 | // var shouldUseOTP; |
170 | // var otp; | 167 | // var otp; |
171 | var signalArguments; | 168 | var signalArguments; |
172 | 169 | ||
173 | anEvent.preventDefault(); | 170 | anEvent.preventDefault(); |
174 | 171 | ||
175 | username = this.getElement('usernameField').value; | 172 | username = this.getElement('usernameField').value; |
176 | passphrase = this.getElement('passphraseField').value; | 173 | passphrase = this.getElement('passphraseField').value; |
177 | // otp =this.getElement('otpField_1').value + | 174 | // otp =this.getElement('otpField_1').value + |
178 | // this.getElement('otpField_2').value + | 175 | // this.getElement('otpField_2').value + |
179 | // this.getElement('otpField_3').value + | 176 | // this.getElement('otpField_3').value + |
180 | // this.getElement('otpField_4').value; | 177 | // this.getElement('otpField_4').value; |
181 | // shouldUseOTP = this.getElement('otpCheckbox').checked; | 178 | // shouldUseOTP = this.getElement('otpCheckbox').checked; |
182 | 179 | ||
183 | signalArguments = {username:username}; | 180 | signalArguments = {username:username}; |
184 | 181 | ||
185 | // if (shouldUseOTP) { | 182 | // if (shouldUseOTP) { |
186 | // signalArguments.otp = otp; | 183 | // signalArguments.otp = otp; |
187 | // } else { | 184 | // } else { |
188 | signalArguments.passphrase = passphrase; | 185 | signalArguments.passphrase = passphrase; |
189 | // } | 186 | // } |
190 | 187 | ||
191 | MochiKit.Signal.signal(this, 'doLogin', signalArguments); | 188 | MochiKit.Signal.signal(this, 'doLogin', signalArguments); |
192 | }, | 189 | }, |
193 | 190 | ||
194 | //------------------------------------------------------------------------- | 191 | //------------------------------------------------------------------------- |
195 | 192 | ||
196 | 'submitButtonElement': function() { | 193 | 'submitButtonElement': function() { |
197 | return this.getElement('submitButton'); | 194 | return this.getElement('submitButton'); |
198 | }, | 195 | }, |
199 | 196 | ||
200 | //------------------------------------------------------------------------- | 197 | //------------------------------------------------------------------------- |
201 | 198 | ||
202 | __syntaxFix__: "syntax fix" | 199 | __syntaxFix__: "syntax fix" |
203 | }); | 200 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js index 49c030d..2894af8 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js | |||
@@ -1,206 +1,203 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginPage = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginPage = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.LoginPage.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.LoginPage.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = { | 33 | this._slots = { |
37 | 'loginForm':this.getId('loginBoxSlot') | 34 | 'loginForm':this.getId('loginBoxSlot') |
38 | }; | 35 | }; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginPage, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginPage, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.LoginPage component"; | 47 | return "Clipperz.PM.UI.Web.Components.LoginPage component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'renderSelf': function(/*aContainer, aPosition*/) { | 52 | 'renderSelf': function(/*aContainer, aPosition*/) { |
56 | this.append(this.element(), [ | 53 | this.append(this.element(), [ |
57 | {tag:'div', id:this.getId('loginBoxSlot')}, | 54 | {tag:'div', id:this.getId('loginBoxSlot')}, |
58 | {tag:'div', id:'main', children:[ | 55 | {tag:'div', id:'main', children:[ |
59 | {tag:'div', id:'featurePoints', children:[ | 56 | {tag:'div', id:'featurePoints', children:[ |
60 | {tag:'table', children:[ | 57 | {tag:'table', children:[ |
61 | {tag:'tr', children:[ | 58 | {tag:'tr', children:[ |
62 | {tag:'td', children:[ | 59 | {tag:'td', children:[ |
63 | {tag:'div', cls:'block', children:[ | 60 | {tag:'div', cls:'block', children:[ |
64 | {tag:'h3', html:'Clipperz is:'}, | 61 | {tag:'h3', html:'Clipperz is:'}, |
65 | {tag:'ul', children:[ | 62 | {tag:'ul', children:[ |
66 | {tag:'li', html:'a secure and simple password manager'}, | 63 | {tag:'li', html:'a secure and simple password manager'}, |
67 | {tag:'li', html:'an effective single sign-on solution'}, | 64 | {tag:'li', html:'an effective single sign-on solution'}, |
68 | {tag:'li', html:'a digital vault for your personal data'} | 65 | {tag:'li', html:'a digital vault for your personal data'} |
69 | ]} | 66 | ]} |
70 | ]}, | 67 | ]}, |
71 | {tag:'div', cls:'block', children:[ | 68 | {tag:'div', cls:'block', children:[ |
72 | {tag:'h3', html:'Clipperz benefits:'}, | 69 | {tag:'h3', html:'Clipperz benefits:'}, |
73 | {tag:'ul', children:[ | 70 | {tag:'ul', children:[ |
74 | {tag:'li', html:'free and completely anonymous'}, | 71 | {tag:'li', html:'free and completely anonymous'}, |
75 | {tag:'li', html:'access it any time from any computer'}, | 72 | {tag:'li', html:'access it any time from any computer'}, |
76 | {tag:'li', html:'no software to download and nothing to install'}, | 73 | {tag:'li', html:'no software to download and nothing to install'}, |
77 | {tag:'li', html:'avoid keeping secrets on your PC or on paper'} | 74 | {tag:'li', html:'avoid keeping secrets on your PC or on paper'} |
78 | ]} | 75 | ]} |
79 | ]} | 76 | ]} |
80 | ]}, {tag:'td', children:[ | 77 | ]}, {tag:'td', children:[ |
81 | {tag:'div', cls:'block', children:[ | 78 | {tag:'div', cls:'block', children:[ |
82 | {tag:'h3', html:'Clipperz security:'}, | 79 | {tag:'h3', html:'Clipperz security:'}, |
83 | {tag:'ul', children:[ | 80 | {tag:'ul', children:[ |
84 | {tag:'li', html:'your secretes are locally encrypted by your browser before being uploaded to Clipperz'}, | 81 | {tag:'li', html:'your secretes are locally encrypted by your browser before being uploaded to Clipperz'}, |
85 | {tag:'li', html:'the encryption key is a passphrase known only to you'}, | 82 | {tag:'li', html:'the encryption key is a passphrase known only to you'}, |
86 | {tag:'li', html:'Clipperz hosts your sensitive data in an encrypted form and could never access the data in its plain form'}, | 83 | {tag:'li', html:'Clipperz hosts your sensitive data in an encrypted form and could never access the data in its plain form'}, |
87 | {tag:'li', html:'Clipperz is built upon standard encryption schemes, nothing fancies of homemade'}, | 84 | {tag:'li', html:'Clipperz is built upon standard encryption schemes, nothing fancies of homemade'}, |
88 | {tag:'li', html:'you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!'} | 85 | {tag:'li', html:'you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!'} |
89 | ]} | 86 | ]} |
90 | ]} | 87 | ]} |
91 | ]} | 88 | ]} |
92 | ]} | 89 | ]} |
93 | ]} | 90 | ]} |
94 | ]}, | 91 | ]}, |
95 | {tag:'div', cls:'activeFeatures', children:[ | 92 | {tag:'div', cls:'activeFeatures', children:[ |
96 | {tag:'div', id:this.getId('registerButton'), cls:'createAccountLink', children:[ | 93 | {tag:'div', id:this.getId('registerButton'), cls:'createAccountLink', children:[ |
97 | {tag:'canvas', id:this.getId('registerButtonIcon')}, | 94 | {tag:'canvas', id:this.getId('registerButtonIcon')}, |
98 | {tag:'a', href:'#', id:this.getId('createAccountLink'), cls:'createAccountLink', children:[ | 95 | {tag:'a', href:'#', id:this.getId('createAccountLink'), cls:'createAccountLink', children:[ |
99 | {tag:'span', cls:'payoff', html:"Free sign up!"}, | 96 | {tag:'span', cls:'payoff', html:"Free sign up!"}, |
100 | {tag:'span', cls:'link', html:"Create account >>"} | 97 | {tag:'span', cls:'link', html:"Create account >>"} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'keepTogether', children:[ | 100 | {tag:'div', cls:'keepTogether', children:[ |
104 | {tag:'div', id:this.getId('screenshotLink'), cls:'screenshotLink', children:[ | 101 | {tag:'div', id:this.getId('screenshotLink'), cls:'screenshotLink', children:[ |
105 | {tag:'canvas', id:this.getId('lookIcon')}, | 102 | {tag:'canvas', id:this.getId('lookIcon')}, |
106 | {tag:'a', href:'#', cls:'screenshotLink', children:[ | 103 | {tag:'a', href:'#', cls:'screenshotLink', children:[ |
107 | {tag:'span', cls:'payoff', html:"Look Clipperz!"}, | 104 | {tag:'span', cls:'payoff', html:"Look Clipperz!"}, |
108 | {tag:'span', cls:'link', html:"screenshot tour >>"} | 105 | {tag:'span', cls:'link', html:"screenshot tour >>"} |
109 | ]} | 106 | ]} |
110 | ]}, | 107 | ]}, |
111 | {tag:'div', id:this.getId('offlineLink'), cls:'offlineLink', children:[ | 108 | {tag:'div', id:this.getId('offlineLink'), cls:'offlineLink', children:[ |
112 | {tag:'canvas', id:this.getId('downloadIcon')}, | 109 | {tag:'canvas', id:this.getId('downloadIcon')}, |
113 | {tag:'a', href:'#', cls:'offlineLink', children:[ | 110 | {tag:'a', href:'#', cls:'offlineLink', children:[ |
114 | {tag:'span', cls:'payoff', html:"Download!"}, | 111 | {tag:'span', cls:'payoff', html:"Download!"}, |
115 | {tag:'span', cls:'link', html:"Offline version >>"} | 112 | {tag:'span', cls:'link', html:"Offline version >>"} |
116 | ]} | 113 | ]} |
117 | ]} | 114 | ]} |
118 | ]} | 115 | ]} |
119 | ]} | 116 | ]} |
120 | ]} | 117 | ]} |
121 | ]); | 118 | ]); |
122 | 119 | ||
123 | this.setRegistrationButtonIconDefaultColors(); | 120 | this.setRegistrationButtonIconDefaultColors(); |
124 | this.setLookIconDefaultColors(); | 121 | this.setLookIconDefaultColors(); |
125 | this.setDownloadIconDefaultColors(); | 122 | this.setDownloadIconDefaultColors(); |
126 | 123 | ||
127 | // MochiKit.Signal.connect(this.getElement('createAccountLink'), 'onclick', this, 'handleCreateAccountLink') | 124 | // MochiKit.Signal.connect(this.getElement('createAccountLink'), 'onclick', this, 'handleCreateAccountLink') |
128 | 125 | ||
129 | MochiKit.Signal.connect(this.getElement('registerButton'), 'onmouseenter', this, 'handleMouseEnterOnRegisterButtonIcon'); | 126 | MochiKit.Signal.connect(this.getElement('registerButton'), 'onmouseenter', this, 'handleMouseEnterOnRegisterButtonIcon'); |
130 | MochiKit.Signal.connect(this.getElement('registerButton'), 'onmouseleave', this, 'handleMouseLeaveOnRegisterButtonIcon'); | 127 | MochiKit.Signal.connect(this.getElement('registerButton'), 'onmouseleave', this, 'handleMouseLeaveOnRegisterButtonIcon'); |
131 | 128 | ||
132 | MochiKit.Signal.connect(this.getElement('screenshotLink'), 'onmouseenter', this, 'handleMouseEnterOnLookIcon'); | 129 | MochiKit.Signal.connect(this.getElement('screenshotLink'), 'onmouseenter', this, 'handleMouseEnterOnLookIcon'); |
133 | MochiKit.Signal.connect(this.getElement('screenshotLink'), 'onmouseleave', this, 'handleMouseLeaveOnLookIcon'); | 130 | MochiKit.Signal.connect(this.getElement('screenshotLink'), 'onmouseleave', this, 'handleMouseLeaveOnLookIcon'); |
134 | 131 | ||
135 | MochiKit.Signal.connect(this.getElement('offlineLink'), 'onmouseenter', this, 'handleMouseEnterOnDownloadIcon'); | 132 | MochiKit.Signal.connect(this.getElement('offlineLink'), 'onmouseenter', this, 'handleMouseEnterOnDownloadIcon'); |
136 | MochiKit.Signal.connect(this.getElement('offlineLink'), 'onmouseleave', this, 'handleMouseLeaveOnDownloadIcon'); | 133 | MochiKit.Signal.connect(this.getElement('offlineLink'), 'onmouseleave', this, 'handleMouseLeaveOnDownloadIcon'); |
137 | 134 | ||
138 | MochiKit.Signal.connect(this.getElement('createAccountLink'), 'onclick', this, 'handleCreateAccountLink') | 135 | MochiKit.Signal.connect(this.getElement('createAccountLink'), 'onclick', this, 'handleCreateAccountLink') |
139 | }, | 136 | }, |
140 | 137 | ||
141 | //------------------------------------------------------------------------- | 138 | //------------------------------------------------------------------------- |
142 | 139 | ||
143 | 'setRegistrationButtonIconDefaultColors': function () { | 140 | 'setRegistrationButtonIconDefaultColors': function () { |
144 | Clipperz.PM.UI.Canvas.registerButton.normal(this.getElement('registerButtonIcon'), "#eeeeee", "#eeeeee", "#ecab12", "#e14624", "#ffffff"); | 141 | Clipperz.PM.UI.Canvas.registerButton.normal(this.getElement('registerButtonIcon'), "#eeeeee", "#eeeeee", "#ecab12", "#e14624", "#ffffff"); |
145 | }, | 142 | }, |
146 | 143 | ||
147 | 'setRegistrationButtonIconHoverColors': function () { | 144 | 'setRegistrationButtonIconHoverColors': function () { |
148 | Clipperz.PM.UI.Canvas.registerButton.normal(this.getElement('registerButtonIcon'), "#cccccc", "#999999", "#ffb710", "#ff4d27", "#ffffff"); | 145 | Clipperz.PM.UI.Canvas.registerButton.normal(this.getElement('registerButtonIcon'), "#cccccc", "#999999", "#ffb710", "#ff4d27", "#ffffff"); |
149 | }, | 146 | }, |
150 | 147 | ||
151 | 'handleMouseEnterOnRegisterButtonIcon': function (anEvent) { | 148 | 'handleMouseEnterOnRegisterButtonIcon': function (anEvent) { |
152 | this.setRegistrationButtonIconHoverColors(); | 149 | this.setRegistrationButtonIconHoverColors(); |
153 | }, | 150 | }, |
154 | 151 | ||
155 | 'handleMouseLeaveOnRegisterButtonIcon': function (anEvent) { | 152 | 'handleMouseLeaveOnRegisterButtonIcon': function (anEvent) { |
156 | this.setRegistrationButtonIconDefaultColors(); | 153 | this.setRegistrationButtonIconDefaultColors(); |
157 | }, | 154 | }, |
158 | 155 | ||
159 | //------------------------------------------------------------------------- | 156 | //------------------------------------------------------------------------- |
160 | 157 | ||
161 | 'setLookIconDefaultColors': function () { | 158 | 'setLookIconDefaultColors': function () { |
162 | Clipperz.PM.UI.Canvas.coverActions.look(this.getElement('lookIcon'), "#7e7e7e", "#ffffff", 1); | 159 | Clipperz.PM.UI.Canvas.coverActions.look(this.getElement('lookIcon'), "#7e7e7e", "#ffffff", 1); |
163 | }, | 160 | }, |
164 | 161 | ||
165 | 'setLookIconHoverColors': function () { | 162 | 'setLookIconHoverColors': function () { |
166 | Clipperz.PM.UI.Canvas.coverActions.look(this.getElement('lookIcon'), "#666666", "#ffffff", 2); | 163 | Clipperz.PM.UI.Canvas.coverActions.look(this.getElement('lookIcon'), "#666666", "#ffffff", 2); |
167 | }, | 164 | }, |
168 | 165 | ||
169 | 'handleMouseEnterOnLookIcon': function (anEvent) { | 166 | 'handleMouseEnterOnLookIcon': function (anEvent) { |
170 | this.setLookIconHoverColors(); | 167 | this.setLookIconHoverColors(); |
171 | }, | 168 | }, |
172 | 169 | ||
173 | 'handleMouseLeaveOnLookIcon': function (anEvent) { | 170 | 'handleMouseLeaveOnLookIcon': function (anEvent) { |
174 | this.setLookIconDefaultColors(); | 171 | this.setLookIconDefaultColors(); |
175 | }, | 172 | }, |
176 | 173 | ||
177 | //------------------------------------------------------------------------- | 174 | //------------------------------------------------------------------------- |
178 | 175 | ||
179 | 'setDownloadIconDefaultColors': function () { | 176 | 'setDownloadIconDefaultColors': function () { |
180 | Clipperz.PM.UI.Canvas.coverActions.download(this.getElement('downloadIcon'), "#7e7e7e", "#ffffff", 1); | 177 | Clipperz.PM.UI.Canvas.coverActions.download(this.getElement('downloadIcon'), "#7e7e7e", "#ffffff", 1); |
181 | }, | 178 | }, |
182 | 179 | ||
183 | 'setDownloadIconHoverColors': function () { | 180 | 'setDownloadIconHoverColors': function () { |
184 | Clipperz.PM.UI.Canvas.coverActions.download(this.getElement('downloadIcon'), "#666666", "#ffffff", 2); | 181 | Clipperz.PM.UI.Canvas.coverActions.download(this.getElement('downloadIcon'), "#666666", "#ffffff", 2); |
185 | }, | 182 | }, |
186 | 183 | ||
187 | 'handleMouseEnterOnDownloadIcon': function (anEvent) { | 184 | 'handleMouseEnterOnDownloadIcon': function (anEvent) { |
188 | this.setDownloadIconHoverColors(); | 185 | this.setDownloadIconHoverColors(); |
189 | }, | 186 | }, |
190 | 187 | ||
191 | 'handleMouseLeaveOnDownloadIcon': function (anEvent) { | 188 | 'handleMouseLeaveOnDownloadIcon': function (anEvent) { |
192 | this.setDownloadIconDefaultColors(); | 189 | this.setDownloadIconDefaultColors(); |
193 | }, | 190 | }, |
194 | 191 | ||
195 | //------------------------------------------------------------------------- | 192 | //------------------------------------------------------------------------- |
196 | 193 | ||
197 | 'handleCreateAccountLink': function (anEvent) { | 194 | 'handleCreateAccountLink': function (anEvent) { |
198 | anEvent.preventDefault(); | 195 | anEvent.preventDefault(); |
199 | 196 | ||
200 | MochiKit.Signal.signal(this, 'createNewAccountClick', anEvent.src()); | 197 | MochiKit.Signal.signal(this, 'createNewAccountClick', anEvent.src()); |
201 | }, | 198 | }, |
202 | 199 | ||
203 | //------------------------------------------------------------------------- | 200 | //------------------------------------------------------------------------- |
204 | 201 | ||
205 | __syntaxFix__: "syntax fix" | 202 | __syntaxFix__: "syntax fix" |
206 | }); | 203 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js index 03c7b9e..5d082b5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js | |||
@@ -1,155 +1,152 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.LoginProgress.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.LoginProgress.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._deferred = null; | 33 | this._deferred = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.LoginProgress component"; | 45 | return "Clipperz.PM.UI.Web.Components.LoginProgress component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'deferred': function() { | 50 | 'deferred': function() { |
54 | return this._deferred; | 51 | return this._deferred; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setDeferred': function(aValue) { | 54 | 'setDeferred': function(aValue) { |
58 | this._deferred = aValue; | 55 | this._deferred = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'renderSelf': function() { | 60 | 'renderSelf': function() { |
64 | // var loginProgressElement; | 61 | // var loginProgressElement; |
65 | // | 62 | // |
66 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); | 63 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); |
67 | // | 64 | // |
68 | // if (loginProgressElement == null) { | 65 | // if (loginProgressElement == null) { |
69 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); | 66 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); |
70 | // } | 67 | // } |
71 | 68 | ||
72 | //console.log(">> LoginProgress.renderSelf", this.element()); | 69 | //console.log(">> LoginProgress.renderSelf", this.element()); |
73 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ | 70 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ |
74 | // this.append(loginProgressElement, [ | 71 | // this.append(loginProgressElement, [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'h3', id:this.getId('title'), html:"login progress"} | 73 | {tag:'h3', id:this.getId('title'), html:"login progress"} |
77 | ]}, | 74 | ]}, |
78 | {tag:'div', cls:'body', children:[ | 75 | {tag:'div', cls:'body', children:[ |
79 | {tag:'div', id:this.getId('progressBar')}, | 76 | {tag:'div', id:this.getId('progressBar')}, |
80 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ | 77 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ |
81 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, | 78 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, |
82 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, | 79 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, |
83 | {tag:'p', html:"Login failed"} | 80 | {tag:'p', html:"Login failed"} |
84 | ]} | 81 | ]} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', cls:'footer', children:[ | 83 | {tag:'div', cls:'footer', children:[ |
87 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ | 84 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ |
88 | {tag:'div', cls:'button', id:this.getId('button'), children:[ | 85 | {tag:'div', cls:'button', id:this.getId('button'), children:[ |
89 | {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} | 86 | {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} |
90 | ]} | 87 | ]} |
91 | ]} | 88 | ]} |
92 | ]} | 89 | ]} |
93 | ]}); | 90 | ]}); |
94 | // ]); | 91 | // ]); |
95 | 92 | ||
96 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); | 93 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); |
97 | 94 | ||
98 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 95 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
99 | MochiKit.Style.hideElement(this.getElement('errorBox')); | 96 | MochiKit.Style.hideElement(this.getElement('errorBox')); |
100 | 97 | ||
101 | MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); | 98 | MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | 102 | ||
106 | 'displayElement': function() { | 103 | 'displayElement': function() { |
107 | return MochiKit.DOM.getElement('loginProgress'); | 104 | return MochiKit.DOM.getElement('loginProgress'); |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //------------------------------------------------------------------------- | 107 | //------------------------------------------------------------------------- |
111 | 108 | ||
112 | 'cancelEventHandler': function(anEvent) { | 109 | 'cancelEventHandler': function(anEvent) { |
113 | anEvent.preventDefault(); | 110 | anEvent.preventDefault(); |
114 | 111 | ||
115 | MochiKit.Signal.signal(this, 'cancelEvent'); | 112 | MochiKit.Signal.signal(this, 'cancelEvent'); |
116 | }, | 113 | }, |
117 | 114 | ||
118 | //------------------------------------------------------------------------- | 115 | //------------------------------------------------------------------------- |
119 | 116 | ||
120 | 'disableCancel': function() { | 117 | 'disableCancel': function() { |
121 | MochiKit.Style.hideElement(this.getElement('buttonArea')); | 118 | MochiKit.Style.hideElement(this.getElement('buttonArea')); |
122 | }, | 119 | }, |
123 | 120 | ||
124 | //------------------------------------------------------------------------- | 121 | //------------------------------------------------------------------------- |
125 | 122 | ||
126 | 'showErrorMessage': function() { | 123 | 'showErrorMessage': function() { |
127 | this.getElement('buttonLink').innerHTML = "close"; | 124 | this.getElement('buttonLink').innerHTML = "close"; |
128 | 125 | ||
129 | MochiKit.Style.hideElement(this.getElement('progressBar')); | 126 | MochiKit.Style.hideElement(this.getElement('progressBar')); |
130 | 127 | ||
131 | this.getElement('title').innerHTML = "Error"; | 128 | this.getElement('title').innerHTML = "Error"; |
132 | MochiKit.Style.showElement(this.getElement('errorBox')); | 129 | MochiKit.Style.showElement(this.getElement('errorBox')); |
133 | MochiKit.Style.showElement(this.getElement('buttonArea')); | 130 | MochiKit.Style.showElement(this.getElement('buttonArea')); |
134 | }, | 131 | }, |
135 | 132 | ||
136 | //------------------------------------------------------------------------- | 133 | //------------------------------------------------------------------------- |
137 | 134 | ||
138 | 'deferredHideModalAndRemove': function(someParameters, aResult) { | 135 | 'deferredHideModalAndRemove': function(someParameters, aResult) { |
139 | vardeferredResult; | 136 | vardeferredResult; |
140 | 137 | ||
141 | deferredResult = new Clipperz.Async.Deferred("LoginProgress.deferredHideModalAndRemove", {trace:false}); | 138 | deferredResult = new Clipperz.Async.Deferred("LoginProgress.deferredHideModalAndRemove", {trace:false}); |
142 | deferredResult.addMethod(this, 'deferredHideModal'); | 139 | deferredResult.addMethod(this, 'deferredHideModal'); |
143 | deferredResult.addMethod(this, 'remove'); | 140 | deferredResult.addMethod(this, 'remove'); |
144 | deferredResult.addCallback(function () { | 141 | deferredResult.addCallback(function () { |
145 | return aResult; | 142 | return aResult; |
146 | }); | 143 | }); |
147 | deferredResult.callback(someParameters); | 144 | deferredResult.callback(someParameters); |
148 | 145 | ||
149 | return deferredResult; | 146 | return deferredResult; |
150 | }, | 147 | }, |
151 | 148 | ||
152 | //------------------------------------------------------------------------- | 149 | //------------------------------------------------------------------------- |
153 | 150 | ||
154 | __syntaxFix__: "syntax fix" | 151 | __syntaxFix__: "syntax fix" |
155 | }); | 152 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js index b40d1f3..feb16ad 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._initiallySelectedTab = args.selected || 'CREDENTIALS'; | 35 | this._initiallySelectedTab = args.selected || 'CREDENTIALS'; |
39 | this._tabPanelControllerConfiguration = { | 36 | this._tabPanelControllerConfiguration = { |
40 | 'CREDENTIALS': { | 37 | 'CREDENTIALS': { |
41 | tab:'credentialsTab', | 38 | tab:'credentialsTab', |
42 | panel:'credentialsTabpanel' | 39 | panel:'credentialsTabpanel' |
43 | }, | 40 | }, |
44 | 'CHECK_CREDENTIALS': { | 41 | 'CHECK_CREDENTIALS': { |
45 | tab:'checkCredentialsTab', | 42 | tab:'checkCredentialsTab', |
46 | panel:'checkCredentialsTabpanel' | 43 | panel:'checkCredentialsTabpanel' |
47 | }, | 44 | }, |
48 | 'TERMS_OF_SERVICE': { | 45 | 'TERMS_OF_SERVICE': { |
49 | tab:'termsOfServiceTab', | 46 | tab:'termsOfServiceTab', |
50 | panel:'termsOfServiceTabpanel' | 47 | panel:'termsOfServiceTabpanel' |
51 | }, | 48 | }, |
52 | 'CREATE_USER': { | 49 | 'CREATE_USER': { |
53 | tab:'createUserTab', | 50 | tab:'createUserTab', |
54 | panel:'createUserTabpanel' | 51 | panel:'createUserTabpanel' |
55 | }//, | 52 | }//, |
56 | /* | 53 | /* |
57 | 'LOGIN': { | 54 | 'LOGIN': { |
58 | tab:'loginTab', | 55 | tab:'loginTab', |
59 | panel:'loginTabpanel' | 56 | panel:'loginTabpanel' |
60 | } | 57 | } |
61 | */ | 58 | */ |
62 | }; | 59 | }; |
63 | 60 | ||
64 | return this; | 61 | return this; |
65 | } | 62 | } |
66 | 63 | ||
67 | //============================================================================= | 64 | //============================================================================= |
68 | 65 | ||
69 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 66 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'toString': function () { | 70 | 'toString': function () { |
74 | return "Clipperz.PM.UI.Web.Components.NewUserCreationComponent component"; | 71 | return "Clipperz.PM.UI.Web.Components.NewUserCreationComponent component"; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //========================================================================= | 74 | //========================================================================= |
78 | 75 | ||
79 | 'disableAllPanels': function () { | 76 | 'disableAllPanels': function () { |
80 | this.tabPanelController().selectTab(null); | 77 | this.tabPanelController().selectTab(null); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'enableCredentialsPanel': function () { | 82 | 'enableCredentialsPanel': function () { |
86 | this.tabPanelController().selectTab('CREDENTIALS'); | 83 | this.tabPanelController().selectTab('CREDENTIALS'); |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'enableCheckCredentialsPanel': function () { | 86 | 'enableCheckCredentialsPanel': function () { |
90 | this.tabPanelController().selectTab('CHECK_CREDENTIALS'); | 87 | this.tabPanelController().selectTab('CHECK_CREDENTIALS'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'enableTermsOfServicePanel': function () { | 90 | 'enableTermsOfServicePanel': function () { |
94 | this.tabPanelController().selectTab('TERMS_OF_SERVICE'); | 91 | this.tabPanelController().selectTab('TERMS_OF_SERVICE'); |
95 | }, | 92 | }, |
96 | 93 | ||
97 | 'enableCreateUserPanel': function () { | 94 | 'enableCreateUserPanel': function () { |
98 | this.tabPanelController().selectTab('CREATE_USER'); | 95 | this.tabPanelController().selectTab('CREATE_USER'); |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //'enableLoginPanel': function () { | 98 | //'enableLoginPanel': function () { |
102 | // this.tabPanelController().selectTab('LOGIN'); | 99 | // this.tabPanelController().selectTab('LOGIN'); |
103 | //}, | 100 | //}, |
104 | 101 | ||
105 | //========================================================================= | 102 | //========================================================================= |
106 | 103 | ||
107 | 'shouldShowElementWhileRendering': function() { | 104 | 'shouldShowElementWhileRendering': function() { |
108 | return false; | 105 | return false; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //========================================================================= | 108 | //========================================================================= |
112 | 109 | ||
113 | 'tabPanelController': function () { | 110 | 'tabPanelController': function () { |
114 | if (this._tabPanelController == null) { | 111 | if (this._tabPanelController == null) { |
115 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ | 112 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ |
116 | component:this, | 113 | component:this, |
117 | configuration:this._tabPanelControllerConfiguration | 114 | configuration:this._tabPanelControllerConfiguration |
118 | }); | 115 | }); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') | 117 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') |
121 | } | 118 | } |
122 | 119 | ||
123 | return this._tabPanelController; | 120 | return this._tabPanelController; |
124 | }, | 121 | }, |
125 | 122 | ||
126 | //------------------------------------------------------------------------- | 123 | //------------------------------------------------------------------------- |
127 | 124 | ||
128 | 'renderSelf': function() { | 125 | 'renderSelf': function() { |
129 | //console.log('** Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition)); | 126 | //console.log('** Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition)); |
130 | 127 | ||
131 | this.append(this.element(), {tag:'div', cls:'NewUserCreation mainDialog', id:this.getId('panel'), children: [ | 128 | this.append(this.element(), {tag:'div', cls:'NewUserCreation mainDialog', id:this.getId('panel'), children: [ |
132 | {tag:'form', id:this.getId('form'), cls:'newUserCreationForm', children:[ | 129 | {tag:'form', id:this.getId('form'), cls:'newUserCreationForm', children:[ |
133 | {tag:'div', cls:'header', children:[ | 130 | {tag:'div', cls:'header', children:[ |
134 | {tag:'div', cls:'title', children:[ | 131 | {tag:'div', cls:'title', children:[ |
135 | {tag:'h3', id:this.getId('title'), html:"Create new user"} | 132 | {tag:'h3', id:this.getId('title'), html:"Create new user"} |
136 | ]} | 133 | ]} |
137 | ]}, | 134 | ]}, |
138 | {tag:'div', id:this.getId('body'), cls:'body', children:[ | 135 | {tag:'div', id:this.getId('body'), cls:'body', children:[ |
139 | {tag:'div', cls:'tabContainer', children:[ | 136 | {tag:'div', cls:'tabContainer', children:[ |
140 | {tag:'ul', cls:'tabs', children:[ | 137 | {tag:'ul', cls:'tabs', children:[ |
141 | {tag:'li', id:this.getId('credentialsTab'), children:[{tag:'span', html:"credentials"}]}, | 138 | {tag:'li', id:this.getId('credentialsTab'), children:[{tag:'span', html:"credentials"}]}, |
142 | {tag:'li', id:this.getId('checkCredentialsTab'),children:[{tag:'span', html:"credentials check"}]}, | 139 | {tag:'li', id:this.getId('checkCredentialsTab'),children:[{tag:'span', html:"credentials check"}]}, |
143 | {tag:'li', id:this.getId('termsOfServiceTab'), children:[{tag:'span', html:"terms of service"}]}, | 140 | {tag:'li', id:this.getId('termsOfServiceTab'), children:[{tag:'span', html:"terms of service"}]}, |
144 | {tag:'li', id:this.getId('createUserTab'), children:[{tag:'span', html:"create user"}]}//, | 141 | {tag:'li', id:this.getId('createUserTab'), children:[{tag:'span', html:"create user"}]}//, |
145 | // {tag:'li', id:this.getId('loginTab'), children:[{tag:'span', html:"login"}]}, | 142 | // {tag:'li', id:this.getId('loginTab'), children:[{tag:'span', html:"login"}]}, |
146 | ]}, | 143 | ]}, |
147 | {tag:'ul', cls:'tabPanels', children:[ | 144 | {tag:'ul', cls:'tabPanels', children:[ |
148 | {tag:'li', id:this.getId('credentialsTabpanel'), cls:'tabPanel credentials', children:[ | 145 | {tag:'li', id:this.getId('credentialsTabpanel'), cls:'tabPanel credentials', children:[ |
149 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREDENTIALS.description')}]}, | 146 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREDENTIALS.description')}]}, |
150 | {tag:'ul', cls:'credentials', children:[ | 147 | {tag:'ul', cls:'credentials', children:[ |
151 | {tag:'li', children:[{tag:'span', cls:'label', html:"username"},{tag:'input', type:'text', id:this.getId('username')/*, value:'test'*/}]}, | 148 | {tag:'li', children:[{tag:'span', cls:'label', html:"username"},{tag:'input', type:'text', id:this.getId('username')/*, value:'test'*/}]}, |
152 | {tag:'li', children:[{tag:'span', cls:'label', html:"passphrase"},{tag:'input', type:'password', id:this.getId('passphrase')/*, value:'test'*/}]} | 149 | {tag:'li', children:[{tag:'span', cls:'label', html:"passphrase"},{tag:'input', type:'password', id:this.getId('passphrase')/*, value:'test'*/}]} |
153 | ]} | 150 | ]} |
154 | ]}, | 151 | ]}, |
155 | {tag:'li', id:this.getId('checkCredentialsTabpanel'), cls:'tabPanel checkCredentials', children:[ | 152 | {tag:'li', id:this.getId('checkCredentialsTabpanel'), cls:'tabPanel checkCredentials', children:[ |
156 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CHECK_CREDENTIALS.description')}]}, | 153 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CHECK_CREDENTIALS.description')}]}, |
157 | {tag:'ul', cls:'credentials', children:[ | 154 | {tag:'ul', cls:'credentials', children:[ |
158 | {tag:'li', children:[{tag:'span', cls:'label', html:"re-passphrase"},{tag:'input', type:'password', id:this.getId('re-passphrase')/*, value:'test'*/}]} | 155 | {tag:'li', children:[{tag:'span', cls:'label', html:"re-passphrase"},{tag:'input', type:'password', id:this.getId('re-passphrase')/*, value:'test'*/}]} |
159 | ]} | 156 | ]} |
160 | ]}, | 157 | ]}, |
161 | {tag:'li', id:this.getId('termsOfServiceTabpanel'), cls:'tabPanel termsOfService', children:[ | 158 | {tag:'li', id:this.getId('termsOfServiceTabpanel'), cls:'tabPanel termsOfService', children:[ |
162 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.TERMS_OF_SERVICE.description')}]}, | 159 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.TERMS_OF_SERVICE.description')}]}, |
163 | {tag:'ul', cls:'termsOfService', children:[ | 160 | {tag:'ul', cls:'termsOfService', children:[ |
164 | {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('awareOfUnrecoverablePassphrase')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('awareOfUnrecoverablePassphrase'), html:"I understand that Clipperz will not be able to recover a lost passphrase."}]}, | 161 | {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('awareOfUnrecoverablePassphrase')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('awareOfUnrecoverablePassphrase'), html:"I understand that Clipperz will not be able to recover a lost passphrase."}]}, |
165 | {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('readTermsOfService')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('readTermsOfService'), htmlString:"I have read and agreed to the <a href='http://www.clipperz.com/terms_of_service' target='_blank'>Terms of Service</a>."}]} | 162 | {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('readTermsOfService')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('readTermsOfService'), htmlString:"I have read and agreed to the <a href='http://www.clipperz.com/terms_of_service' target='_blank'>Terms of Service</a>."}]} |
166 | ]} | 163 | ]} |
167 | ]}, | 164 | ]}, |
168 | {tag:'li', id:this.getId('createUserTabpanel'), cls:'tabPanel createUser', children:[ | 165 | {tag:'li', id:this.getId('createUserTabpanel'), cls:'tabPanel createUser', children:[ |
169 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREATE_USER.description')}]}, | 166 | {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREATE_USER.description')}]}, |
170 | {tag:'ul', cls:'createUserStates', children:[ | 167 | {tag:'ul', cls:'createUserStates', children:[ |
171 | {tag:'li', cls:'creating', id:this.getId('creatingRegistering'), children:[{tag:'span', html:"registering user"}]}, | 168 | {tag:'li', cls:'creating', id:this.getId('creatingRegistering'), children:[{tag:'span', html:"registering user"}]}, |
172 | {tag:'li', cls:'done', id:this.getId('creatingDone'), children:[{tag:'span', html:"done"}]}, | 169 | {tag:'li', cls:'done', id:this.getId('creatingDone'), children:[{tag:'span', html:"done"}]}, |
173 | {tag:'li', cls:'fail', id:this.getId('creatingFailed'), children:[{tag:'span', html:"fail"}]} | 170 | {tag:'li', cls:'fail', id:this.getId('creatingFailed'), children:[{tag:'span', html:"fail"}]} |
174 | ]} | 171 | ]} |
175 | ]}//, | 172 | ]}//, |
176 | // {tag:'li', id:this.getId('loginTabpanel'), cls:'tabPanel login', children:[ | 173 | // {tag:'li', id:this.getId('loginTabpanel'), cls:'tabPanel login', children:[ |
177 | // {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.LOGIN.description')}]}, | 174 | // {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.LOGIN.description')}]}, |
178 | // ]} | 175 | // ]} |
179 | ]} | 176 | ]} |
180 | ]} | 177 | ]} |
181 | ]}, | 178 | ]}, |
182 | {tag:'div', id:this.getId('footer'), cls:'footer', children:[ | 179 | {tag:'div', id:this.getId('footer'), cls:'footer', children:[ |
183 | {tag:'div', cls:'buttonArea', children:[ | 180 | {tag:'div', cls:'buttonArea', children:[ |
184 | // {tag:'div', cls:'cancel', id:this.getId('cancelButton'), html:"cancel"}, | 181 | // {tag:'div', cls:'cancel', id:this.getId('cancelButton'), html:"cancel"}, |
185 | // {tag:'div', cls:'save disabled', id:this.getId('saveButton'), html:"save"} | 182 | // {tag:'div', cls:'save disabled', id:this.getId('saveButton'), html:"save"} |
186 | ]} | 183 | ]} |
187 | ]} | 184 | ]} |
188 | ]}, | 185 | ]}, |
189 | {tag:'div', cls:'clear'} | 186 | {tag:'div', cls:'clear'} |
190 | ]}); | 187 | ]}); |
191 | 188 | ||
192 | this.tabPanelController().setup(); | 189 | this.tabPanelController().setup(); |
193 | // MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'handleKeyEvent'); | 190 | // MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'handleKeyEvent'); |
194 | MochiKit.Signal.connect(MochiKit.DOM.currentDocument().body, 'onkeydown', this, 'handleKeyEvent'); | 191 | MochiKit.Signal.connect(MochiKit.DOM.currentDocument().body, 'onkeydown', this, 'handleKeyEvent'); |
195 | MochiKit.Signal.connect(this.getId('awareOfUnrecoverablePassphrase'), 'onchange', this, 'handleTermsOfServiceCheckboxChange'); | 192 | MochiKit.Signal.connect(this.getId('awareOfUnrecoverablePassphrase'), 'onchange', this, 'handleTermsOfServiceCheckboxChange'); |
196 | MochiKit.Signal.connect(this.getId('readTermsOfService'), 'onchange', this, 'handleTermsOfServiceCheckboxChange'); | 193 | MochiKit.Signal.connect(this.getId('readTermsOfService'), 'onchange', this, 'handleTermsOfServiceCheckboxChange'); |
197 | }, | 194 | }, |
198 | 195 | ||
199 | //------------------------------------------------------------------------- | 196 | //------------------------------------------------------------------------- |
200 | /* | 197 | /* |
201 | 'resetContent': function () { | 198 | 'resetContent': function () { |
202 | this.getElement('username').value = ''; | 199 | this.getElement('username').value = ''; |
203 | this.getElement('passphrase').value = ''; | 200 | this.getElement('passphrase').value = ''; |
204 | }, | 201 | }, |
205 | */ | 202 | */ |
206 | //------------------------------------------------------------------------- | 203 | //------------------------------------------------------------------------- |
207 | 204 | ||
208 | 'displayElement': function() { | 205 | 'displayElement': function() { |
209 | return this.getElement('panel'); | 206 | return this.getElement('panel'); |
210 | }, | 207 | }, |
211 | 208 | ||
212 | //------------------------------------------------------------------------- | 209 | //------------------------------------------------------------------------- |
213 | 210 | ||
214 | 'handleTabSelected': function (aSelectedTab) { | 211 | 'handleTabSelected': function (aSelectedTab) { |
215 | /* | 212 | /* |
216 | switch (aSelectedTab) { | 213 | switch (aSelectedTab) { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js index bed6675..3cc5a37 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.Page = function(args) { | 28 | Clipperz.PM.UI.Web.Components.Page = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.Page.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.Page.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = { | 33 | this._slots = { |
37 | 'header':'pageHeader', | 34 | 'header':'pageHeader', |
38 | 'body': 'pageBody', | 35 | 'body': 'pageBody', |
39 | 'footer':'pageFooter' | 36 | 'footer':'pageFooter' |
40 | }; | 37 | }; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.Page, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.Page, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.Page component"; | 49 | return "Clipperz.PM.UI.Web.Components.Page component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'renderSelf': function(/*aContainer, aPosition*/) { | 54 | 'renderSelf': function(/*aContainer, aPosition*/) { |
58 | this.append(this.element(), [ | 55 | this.append(this.element(), [ |
59 | {tag:'div', id:'pageHeaderAndBody', cls:'pageHeaderAndBody', children:[ | 56 | {tag:'div', id:'pageHeaderAndBody', cls:'pageHeaderAndBody', children:[ |
60 | {tag:'div', id:'pageHeader', cls:'pageHeader'}, | 57 | {tag:'div', id:'pageHeader', cls:'pageHeader'}, |
61 | {tag:'div', id:'pageBody', cls:'pageBody'} | 58 | {tag:'div', id:'pageBody', cls:'pageBody'} |
62 | ]}, | 59 | ]}, |
63 | {tag:'div', id:'pageFooter', cls:'pageFooter'} | 60 | {tag:'div', id:'pageFooter', cls:'pageFooter'} |
64 | ]); | 61 | ]); |
65 | 62 | ||
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js index 11135d8..5e8cd7f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PageFooter = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PageFooter = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PageFooter.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PageFooter.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.Web.Components.PageFooter component"; | 43 | return "Clipperz.PM.UI.Web.Components.PageFooter component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'renderSelf': function(/*aContainer, aPosition*/) { | 48 | 'renderSelf': function(/*aContainer, aPosition*/) { |
52 | this.append(this.element(), [ | 49 | this.append(this.element(), [ |
53 | {tag:'div', cls:'footerWrapper', children:[ | 50 | {tag:'div', cls:'footerWrapper', children:[ |
54 | {tag:'div', cls:'footerContent', children:[ | 51 | {tag:'div', cls:'footerContent', children:[ |
55 | // {tag:'div', cls:'footerStarIcon'}, | 52 | // {tag:'div', cls:'footerStarIcon'}, |
56 | {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, | 53 | {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, |
57 | {tag:'span', cls:'copyright', html:'Copyright © 2009 Clipperz Srl'}, | 54 | {tag:'span', cls:'copyright', html:'Copyright © 2009 Clipperz Srl'}, |
58 | {tag:'a', href:'http://www.clipperz.com/terms_of_service',target:'_blank', html:'terms of service'}, | 55 | {tag:'a', href:'http://www.clipperz.com/terms_of_service',target:'_blank', html:'terms of service'}, |
59 | {tag:'a', href:'http://www.clipperz.com/privacy_policy',target:'_blank', html:'privacy policy'}, | 56 | {tag:'a', href:'http://www.clipperz.com/privacy_policy',target:'_blank', html:'privacy policy'}, |
60 | {tag:'span', cls:'applicationVersion', html:'application version: [1992]'} | 57 | {tag:'span', cls:'applicationVersion', html:'application version: [1992]'} |
61 | ]} | 58 | ]} |
62 | ]} | 59 | ]} |
63 | ]); | 60 | ]); |
64 | 61 | ||
65 | Clipperz.PM.UI.Canvas.star.normal(this.getElement('footerStarIcon'), "#7e7e7e"); | 62 | Clipperz.PM.UI.Canvas.star.normal(this.getElement('footerStarIcon'), "#7e7e7e"); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js index 3924434..bce8395 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js | |||
@@ -1,184 +1,181 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PageHeader = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PageHeader = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PageHeader.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PageHeader.superclass.constructor.apply(this, arguments); |
35 | this._newsIsOpen = args.newsIsOpen || false; | 32 | this._newsIsOpen = args.newsIsOpen || false; |
36 | this._animationDuration = args.animationDuration || 0.5; | 33 | this._animationDuration = args.animationDuration || 0.5; |
37 | 34 | ||
38 | this._offset = 82; | 35 | this._offset = 82; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageHeader, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageHeader, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.PageHeader component"; | 47 | return "Clipperz.PM.UI.Web.Components.PageHeader component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'iframeURL': function () { | 52 | 'iframeURL': function () { |
56 | // return './rss_view.html'; | 53 | // return './rss_view.html'; |
57 | return 'http://www.clipperz.com/files/clipperz.com/appTips/index.html'; | 54 | return 'http://www.clipperz.com/files/clipperz.com/appTips/index.html'; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'renderSelf': function(/*aContainer, aPosition*/) { | 59 | 'renderSelf': function(/*aContainer, aPosition*/) { |
63 | this.append(this.element(), [ | 60 | this.append(this.element(), [ |
64 | {tag:'div', id:'miscLinks', children:[ | 61 | {tag:'div', id:'miscLinks', children:[ |
65 | {tag:'ul', children:[ | 62 | {tag:'ul', children:[ |
66 | {tag:'li', children:[{tag:'a', id:'donateHeaderLink', stringID:'pageHeader.donation', href:'http://www.clipperz.com/donations', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.donation')}]}, | 63 | {tag:'li', children:[{tag:'a', id:'donateHeaderLink', stringID:'pageHeader.donation', href:'http://www.clipperz.com/donations', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.donation')}]}, |
67 | {tag:'li', children:[{tag:'a', id:'forumHeaderLink', stringID:'pageHeader.forum', href:'http://www.clipperz.com/forum', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.forum')}]}, | 64 | {tag:'li', children:[{tag:'a', id:'forumHeaderLink', stringID:'pageHeader.forum', href:'http://www.clipperz.com/forum', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.forum')}]}, |
68 | {tag:'li', children:[{tag:'a', id:'creditsHeaderLink', stringID:'pageHeader.credits', href:'http://www.clipperz.com/credits', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.credits')}]}, | 65 | {tag:'li', children:[{tag:'a', id:'creditsHeaderLink', stringID:'pageHeader.credits', href:'http://www.clipperz.com/credits', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.credits')}]}, |
69 | {tag:'li', children:[{tag:'a', id:'feedbackHeaderLink', stringID:'pageHeader.feedback', href:'http://www.clipperz.com/contact', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.feedback')}]}, | 66 | {tag:'li', children:[{tag:'a', id:'feedbackHeaderLink', stringID:'pageHeader.feedback', href:'http://www.clipperz.com/contact', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.feedback')}]}, |
70 | {tag:'li', children:[{tag:'a', id:'helpHeaderLink', stringID:'pageHeader.help', href:'http://www.clipperz.com/support/user_guide',target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.help')}]} | 67 | {tag:'li', children:[{tag:'a', id:'helpHeaderLink', stringID:'pageHeader.help', href:'http://www.clipperz.com/support/user_guide',target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.help')}]} |
71 | ]} | 68 | ]} |
72 | ]}, | 69 | ]}, |
73 | {tag:'div', id:'logoFrame', children:[ | 70 | {tag:'div', id:'logoFrame', children:[ |
74 | {tag:'a', href:'http://www.clipperz.com', target:'_blank', children:[{tag:'div', id:'logo'}]}, | 71 | {tag:'a', href:'http://www.clipperz.com', target:'_blank', children:[{tag:'div', id:'logo'}]}, |
75 | {tag:'h5', cls:'clipperzPayoff', html:'keep it to yourself!'} | 72 | {tag:'h5', cls:'clipperzPayoff', html:'keep it to yourself!'} |
76 | ]}, | 73 | ]}, |
77 | {tag:'div', id:'news', cls:'hidden', children:[ | 74 | {tag:'div', id:'news', cls:'hidden', children:[ |
78 | // {tag:'div', cls:'close', children:[ | 75 | // {tag:'div', cls:'close', children:[ |
79 | // {tag:'a', href:'#', id:this.getId('closeTips'), html:'x'} | 76 | // {tag:'a', href:'#', id:this.getId('closeTips'), html:'x'} |
80 | // ]}, | 77 | // ]}, |
81 | {tag:'div', id:'newsframe', children:[ | 78 | {tag:'div', id:'newsframe', children:[ |
82 | {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()} | 79 | {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()} |
83 | ]}, | 80 | ]}, |
84 | {tag:'div', id:this.getId('newsGrip'), cls:'grip', children:[]} | 81 | {tag:'div', id:this.getId('newsGrip'), cls:'grip', children:[]} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', id:'featureTabs', children:[ | 83 | {tag:'div', id:'featureTabs', children:[ |
87 | {tag:'table', children:[{tag:'tr', children:[ | 84 | {tag:'table', children:[{tag:'tr', children:[ |
88 | {tag:'td', children:[{tag:'div', id:'feature_store', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('storeIcon')}, {tag:'span', html:"Store and manage your password and online credentials"}]}]}, | 85 | {tag:'td', children:[{tag:'div', id:'feature_store', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('storeIcon')}, {tag:'span', html:"Store and manage your password and online credentials"}]}]}, |
89 | {tag:'td', children:[{tag:'div', id:'feature_protect', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('protectIcon')}, {tag:'span', html:"Protect all your sensitive data"}]}]}, | 86 | {tag:'td', children:[{tag:'div', id:'feature_protect', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('protectIcon')}, {tag:'span', html:"Protect all your sensitive data"}]}]}, |
90 | {tag:'td', children:[{tag:'div', id:'feature_directLogin', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('directLoginIcon')},{tag:'span', html:"Login to your web services without entering any username or password"}]}]}, | 87 | {tag:'td', children:[{tag:'div', id:'feature_directLogin', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('directLoginIcon')},{tag:'span', html:"Login to your web services without entering any username or password"}]}]}, |
91 | {tag:'td', children:[{tag:'div', id:'feature_share', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('shareIcon')}, {tag:'span', html:"Share secret with family members and associates"}]}]} | 88 | {tag:'td', children:[{tag:'div', id:'feature_share', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('shareIcon')}, {tag:'span', html:"Share secret with family members and associates"}]}]} |
92 | ]}]} | 89 | ]}]} |
93 | ]} | 90 | ]} |
94 | ]); | 91 | ]); |
95 | 92 | ||
96 | Clipperz.PM.UI.Canvas.features.store(this.getElement('storeIcon'), "#ffffff"); | 93 | Clipperz.PM.UI.Canvas.features.store(this.getElement('storeIcon'), "#ffffff"); |
97 | Clipperz.PM.UI.Canvas.features.protect(this.getElement('protectIcon'), "#ffffff"); | 94 | Clipperz.PM.UI.Canvas.features.protect(this.getElement('protectIcon'), "#ffffff"); |
98 | Clipperz.PM.UI.Canvas.features.directLogin(this.getElement('directLoginIcon'), "#ffffff"); | 95 | Clipperz.PM.UI.Canvas.features.directLogin(this.getElement('directLoginIcon'), "#ffffff"); |
99 | Clipperz.PM.UI.Canvas.features.share(this.getElement('shareIcon'), "#ffffff", "#ffffff", "#ff0000"); | 96 | Clipperz.PM.UI.Canvas.features.share(this.getElement('shareIcon'), "#ffffff", "#ffffff", "#ff0000"); |
100 | 97 | ||
101 | MochiKit.Signal.connect(this.getElement('newsGrip'), 'onclick', this, 'toggleTips'); | 98 | MochiKit.Signal.connect(this.getElement('newsGrip'), 'onclick', this, 'toggleTips'); |
102 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); | 99 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'switchToLoggedMode': function() { | 104 | 'switchToLoggedMode': function() { |
108 | // MochiKit.Style.addElementClass(this.element(), 'logged'); | 105 | // MochiKit.Style.addElementClass(this.element(), 'logged'); |
109 | MochiKit.Style.hideElement('featureTabs'); | 106 | MochiKit.Style.hideElement('featureTabs'); |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'animationDuration': function () { | 111 | 'animationDuration': function () { |
115 | return this._animationDuration; | 112 | return this._animationDuration; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'offset': function () { | 115 | 'offset': function () { |
119 | return this._offset; | 116 | return this._offset; |
120 | }, | 117 | }, |
121 | 118 | ||
122 | //------------------------------------------------------------------------- | 119 | //------------------------------------------------------------------------- |
123 | 120 | ||
124 | 'isNewsOpen': function () { | 121 | 'isNewsOpen': function () { |
125 | return this._newsIsOpen; | 122 | return this._newsIsOpen; |
126 | }, | 123 | }, |
127 | 124 | ||
128 | 'toggleNewsIsOpen': function () { | 125 | 'toggleNewsIsOpen': function () { |
129 | this._newsIsOpen = !this._newsIsOpen; | 126 | this._newsIsOpen = !this._newsIsOpen; |
130 | }, | 127 | }, |
131 | 128 | ||
132 | 'toggleTips': function(anEvent) { | 129 | 'toggleTips': function(anEvent) { |
133 | anEvent.preventDefault(); | 130 | anEvent.preventDefault(); |
134 | 131 | ||
135 | if (this.isNewsOpen() == true) { | 132 | if (this.isNewsOpen() == true) { |
136 | MochiKit.Visual.Move(Clipperz.DOM.get('news'), { | 133 | MochiKit.Visual.Move(Clipperz.DOM.get('news'), { |
137 | x: 0, | 134 | x: 0, |
138 | y: -this.offset(), | 135 | y: -this.offset(), |
139 | mode: 'relative', | 136 | mode: 'relative', |
140 | duration: this.animationDuration(), | 137 | duration: this.animationDuration(), |
141 | beforeStart: function () { | 138 | beforeStart: function () { |
142 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'hiding'); | 139 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'hiding'); |
143 | }, | 140 | }, |
144 | afterFinish: function () { | 141 | afterFinish: function () { |
145 | Clipperz.DOM.get('newsframe').innerHTML = ""; | 142 | Clipperz.DOM.get('newsframe').innerHTML = ""; |
146 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'hidden'); | 143 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'hidden'); |
147 | } | 144 | } |
148 | }) | 145 | }) |
149 | this.toggleNewsIsOpen(); | 146 | this.toggleNewsIsOpen(); |
150 | } else { | 147 | } else { |
151 | MochiKit.DOM.addElementClass('newsframe', 'loading'); | 148 | MochiKit.DOM.addElementClass('newsframe', 'loading'); |
152 | MochiKit.Visual.Move(Clipperz.DOM.get('news'), { | 149 | MochiKit.Visual.Move(Clipperz.DOM.get('news'), { |
153 | x: 0, | 150 | x: 0, |
154 | y: this.offset(), | 151 | y: this.offset(), |
155 | mode: 'relative', | 152 | mode: 'relative', |
156 | duration: this.animationDuration(), | 153 | duration: this.animationDuration(), |
157 | beforeStart: MochiKit.Base.bind(function () { | 154 | beforeStart: MochiKit.Base.bind(function () { |
158 | this.append(Clipperz.DOM.get('newsframe'), {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()}); | 155 | this.append(Clipperz.DOM.get('newsframe'), {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()}); |
159 | 156 | ||
160 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); | 157 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); |
161 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'opening'); | 158 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'opening'); |
162 | }, this), | 159 | }, this), |
163 | afterFinish: function () { | 160 | afterFinish: function () { |
164 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'open'); | 161 | MochiKit.DOM.setElementClass(Clipperz.DOM.get('news'), 'open'); |
165 | } | 162 | } |
166 | }) | 163 | }) |
167 | this.toggleNewsIsOpen(); | 164 | this.toggleNewsIsOpen(); |
168 | } | 165 | } |
169 | }, | 166 | }, |
170 | 167 | ||
171 | //------------------------------------------------------------------------- | 168 | //------------------------------------------------------------------------- |
172 | 169 | ||
173 | 'handleIframeDidLoad': function (anEvent) { | 170 | 'handleIframeDidLoad': function (anEvent) { |
174 | if (this.isNewsOpen() == false) { | 171 | if (this.isNewsOpen() == false) { |
175 | this.toggleTips(anEvent); | 172 | this.toggleTips(anEvent); |
176 | } | 173 | } |
177 | 174 | ||
178 | MochiKit.DOM.removeElementClass('newsframe', 'loading'); | 175 | MochiKit.DOM.removeElementClass('newsframe', 'loading'); |
179 | MochiKit.Signal.disconnectAllTo(this.getElement('iframe')); | 176 | MochiKit.Signal.disconnectAllTo(this.getElement('iframe')); |
180 | }, | 177 | }, |
181 | 178 | ||
182 | //------------------------------------------------------------------------- | 179 | //------------------------------------------------------------------------- |
183 | __syntaxFix__: "syntax fix" | 180 | __syntaxFix__: "syntax fix" |
184 | }); | 181 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js index 79c8d4f..987e51e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js | |||
@@ -1,164 +1,161 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PasswordTooltip.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PasswordTooltip.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._referenceElement = args.referenceElement|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._referenceElement = args.referenceElement|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | this._boxDimensions = null; | 36 | this._boxDimensions = null; |
40 | this._isVisible = false; | 37 | this._isVisible = false; |
41 | 38 | ||
42 | this.renderSelf(); | 39 | this.renderSelf(); |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | //============================================================================= | 44 | //============================================================================= |
48 | 45 | ||
49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PasswordTooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { | 46 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PasswordTooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'toString': function () { | 50 | 'toString': function () { |
54 | return "Clipperz.PM.UI.Web.Components.PasswordTooltip component"; | 51 | return "Clipperz.PM.UI.Web.Components.PasswordTooltip component"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'referenceElement': function () { | 56 | 'referenceElement': function () { |
60 | return this._referenceElement; | 57 | return this._referenceElement; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'text': function () { | 62 | 'text': function () { |
66 | return this._text; | 63 | return this._text; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | 'setText': function (aValue) { | 66 | 'setText': function (aValue) { |
70 | this._text = aValue; | 67 | this._text = aValue; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'isVisible': function () { | 72 | 'isVisible': function () { |
76 | return this._isVisible; | 73 | return this._isVisible; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'setIsVisible': function (aValue) { | 76 | 'setIsVisible': function (aValue) { |
80 | this._isVisible = aValue; | 77 | this._isVisible = aValue; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'renderSelf': function() { | 82 | 'renderSelf': function() { |
86 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'passwordTooltip', children:[ | 83 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'passwordTooltip', children:[ |
87 | {tag:'div', id:this.getId('body'), cls:'passwordTooltip_body', children:[ | 84 | {tag:'div', id:this.getId('body'), cls:'passwordTooltip_body', children:[ |
88 | {tag:'div', cls:'passwordTooltip_text', children:[ | 85 | {tag:'div', cls:'passwordTooltip_text', children:[ |
89 | {tag:'span', html:this.text()} | 86 | {tag:'span', html:this.text()} |
90 | ]}, | 87 | ]}, |
91 | {tag:'div', id:this.getId('footer'), cls:'passwordTooltip_footer'} | 88 | {tag:'div', id:this.getId('footer'), cls:'passwordTooltip_footer'} |
92 | ]}, | 89 | ]}, |
93 | {tag:'div', id:this.getId('arrow'), cls:'passwordTooltip_arrow'} | 90 | {tag:'div', id:this.getId('arrow'), cls:'passwordTooltip_arrow'} |
94 | ]}); | 91 | ]}); |
95 | 92 | ||
96 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 93 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
97 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 94 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
98 | 95 | ||
99 | MochiKit.Style.hideElement(this.displayElement()); | 96 | MochiKit.Style.hideElement(this.displayElement()); |
100 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 97 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
101 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 98 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //----------------------------------------------------- | 101 | //----------------------------------------------------- |
105 | 102 | ||
106 | 'displayElement': function() { | 103 | 'displayElement': function() { |
107 | return this.getElement('tooltip'); | 104 | return this.getElement('tooltip'); |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //------------------------------------------------------------------------- | 107 | //------------------------------------------------------------------------- |
111 | 108 | ||
112 | 'boxDimensions': function () { | 109 | 'boxDimensions': function () { |
113 | return this._boxDimensions; | 110 | return this._boxDimensions; |
114 | }, | 111 | }, |
115 | 112 | ||
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'show': function () { | 115 | 'show': function () { |
119 | var elementSizeAndPosition; | 116 | var elementSizeAndPosition; |
120 | var arrowPosition; | 117 | var arrowPosition; |
121 | var bodyPosition; | 118 | var bodyPosition; |
122 | 119 | ||
123 | if (this.isVisible() == false) { | 120 | if (this.isVisible() == false) { |
124 | arrowPosition = {}; | 121 | arrowPosition = {}; |
125 | bodyPosition = {}; | 122 | bodyPosition = {}; |
126 | 123 | ||
127 | this.setIsVisible(true); | 124 | this.setIsVisible(true); |
128 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); | 125 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); |
129 | 126 | ||
130 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 127 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
131 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 128 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
132 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; | 129 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; |
133 | 130 | ||
134 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 131 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
135 | arrowPosition.y = elementSizeAndPosition.position.y - 13; | 132 | arrowPosition.y = elementSizeAndPosition.position.y - 13; |
136 | 133 | ||
137 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); | 134 | MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); |
138 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); | 135 | MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); |
139 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); | 136 | MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); |
140 | } | 137 | } |
141 | }, | 138 | }, |
142 | 139 | ||
143 | 'hide': function () { | 140 | 'hide': function () { |
144 | if (this.isVisible() == true) { | 141 | if (this.isVisible() == true) { |
145 | MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); | 142 | MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); |
146 | this.setIsVisible(false); | 143 | this.setIsVisible(false); |
147 | } | 144 | } |
148 | }, | 145 | }, |
149 | 146 | ||
150 | //------------------------------------------------------------------------- | 147 | //------------------------------------------------------------------------- |
151 | /* | 148 | /* |
152 | 'shouldRemoveElementWhenClearningUp': function () { | 149 | 'shouldRemoveElementWhenClearningUp': function () { |
153 | return false; | 150 | return false; |
154 | }, | 151 | }, |
155 | */ | 152 | */ |
156 | //------------------------------------------------------------------------- | 153 | //------------------------------------------------------------------------- |
157 | __syntaxFix__: "syntax fix" | 154 | __syntaxFix__: "syntax fix" |
158 | }); | 155 | }); |
159 | 156 | ||
160 | Clipperz.PM.UI.Web.Components.PasswordTooltip.initTooltips = function () { | 157 | Clipperz.PM.UI.Web.Components.PasswordTooltip.initTooltips = function () { |
161 | Clipperz.DOM.Helper.insertBefore(MochiKit.DOM.currentDocument().body.childNodes[0], {tag:'div', id:'Clipperz_PM_UI_Web_Components_PasswordTooltip_wrapperNode'}); | 158 | Clipperz.DOM.Helper.insertBefore(MochiKit.DOM.currentDocument().body.childNodes[0], {tag:'div', id:'Clipperz_PM_UI_Web_Components_PasswordTooltip_wrapperNode'}); |
162 | } | 159 | } |
163 | 160 | ||
164 | MochiKit.DOM.addLoadEvent(Clipperz.PM.UI.Web.Components.PasswordTooltip.initTooltips); | 161 | MochiKit.DOM.addLoadEvent(Clipperz.PM.UI.Web.Components.PasswordTooltip.initTooltips); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js index ab8a38c..69c1ede 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); | 30 | Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); |
34 | 31 | ||
35 | this._translationContext = args.translationContext|| Clipperz.Base.exception.raise('MandatoryParameter'); | 32 | this._translationContext = args.translationContext|| Clipperz.Base.exception.raise('MandatoryParameter'); |
36 | // this._steps = args.steps || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | // this._steps = args.steps || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._steps = args.steps; | 34 | this._steps = args.steps; |
38 | 35 | ||
39 | this._currentStep = -1; | 36 | this._currentStep = -1; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | //============================================================================= | 41 | //============================================================================= |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 43 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'toString': function () { | 47 | 'toString': function () { |
51 | return "Clipperz.PM.UI.Web.Components.RulerComponent component"; | 48 | return "Clipperz.PM.UI.Web.Components.RulerComponent component"; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'resetStatus': function (args) { | 53 | 'resetStatus': function (args) { |
57 | args = args || {}; | 54 | args = args || {}; |
58 | 55 | ||
59 | if (this.currentStep() != 0) { | 56 | if (this.currentStep() != 0) { |
60 | var shouldAnimateTransition; | 57 | var shouldAnimateTransition; |
61 | 58 | ||
62 | shouldAnimateTransition = args.animateTransition || false; | 59 | shouldAnimateTransition = args.animateTransition || false; |
63 | 60 | ||
64 | if (shouldAnimateTransition) { | 61 | if (shouldAnimateTransition) { |
65 | this.moveToFirstStep(MochiKit.Base.method(this, 'cursorMoved')); | 62 | this.moveToFirstStep(MochiKit.Base.method(this, 'cursorMoved')); |
66 | } else { | 63 | } else { |
67 | this._currentStep = 0; | 64 | this._currentStep = 0; |
68 | this.cursorMoved(); | 65 | this.cursorMoved(); |
69 | } | 66 | } |
70 | } | 67 | } |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'translationContext': function () { | 72 | 'translationContext': function () { |
76 | return this._translationContext; | 73 | return this._translationContext; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'steps': function () { | 76 | 'steps': function () { |
80 | return this._steps; | 77 | return this._steps; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | 'setSteps': function (aValue) { | 80 | 'setSteps': function (aValue) { |
84 | this._steps = aValue; | 81 | this._steps = aValue; |
85 | this.renderStepsComponents(); | 82 | this.renderStepsComponents(); |
86 | this.resetStatus(); | 83 | this.resetStatus(); |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'translatedStepDescription': function (aStep) { | 86 | 'translatedStepDescription': function (aStep) { |
90 | return Clipperz.PM.Strings.getValue(this.translationContext() + '.' + aStep + '.' + 'name'); | 87 | return Clipperz.PM.Strings.getValue(this.translationContext() + '.' + aStep + '.' + 'name'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //------------------------------------------------------------------------- | 90 | //------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'renderSelf': function(/*aContainer, aPosition*/) { | 92 | 'renderSelf': function(/*aContainer, aPosition*/) { |
96 | this.setElement(this.append(MochiKit.DOM.currentDocument().body, [ | 93 | this.setElement(this.append(MochiKit.DOM.currentDocument().body, [ |
97 | {tag:'div', id:this.getId('rulerWrapper'), cls:'rulerWrapper fixed', children:[ | 94 | {tag:'div', id:this.getId('rulerWrapper'), cls:'rulerWrapper fixed', children:[ |
98 | {tag:'div', cls:'ruler', children:[ | 95 | {tag:'div', cls:'ruler', children:[ |
99 | {tag:'a', href:'#', id:this.getId('exit'), cls:'exit', html:' '}, | 96 | {tag:'a', href:'#', id:this.getId('exit'), cls:'exit', html:' '}, |
100 | {tag:'a', href:'#', id:this.getId('smallPreviousButton'),cls:'smallButton previous', html:' '}, | 97 | {tag:'a', href:'#', id:this.getId('smallPreviousButton'),cls:'smallButton previous', html:' '}, |
101 | {tag:'a', href:'#', id:this.getId('smallNextButton'), cls:'smallButton next', html:' '}, | 98 | {tag:'a', href:'#', id:this.getId('smallNextButton'), cls:'smallButton next', html:' '}, |
102 | {tag:'div', cls:'marker', id:this.getId('marker'), children:[ | 99 | {tag:'div', cls:'marker', id:this.getId('marker'), children:[ |
103 | {tag:'div', cls:'previous', id:this.getId('previousButton')}, | 100 | {tag:'div', cls:'previous', id:this.getId('previousButton')}, |
104 | {tag:'div', cls:'markerBody'}, | 101 | {tag:'div', cls:'markerBody'}, |
105 | {tag:'div', cls:'next', id:this.getId('nextButton')} | 102 | {tag:'div', cls:'next', id:this.getId('nextButton')} |
106 | ]}, | 103 | ]}, |
107 | {tag:'div', cls:'steps', id:this.getId('stepsFrame')}, | 104 | {tag:'div', cls:'steps', id:this.getId('stepsFrame')}, |
108 | // {tag:'div', cls:'steps' + ' ' + 'steps_' + this.steps().length, children:[ | 105 | // {tag:'div', cls:'steps' + ' ' + 'steps_' + this.steps().length, children:[ |
109 | // {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map(MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} | 106 | // {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map(MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} |
110 | // ]}, | 107 | // ]}, |
111 | {tag:'div', cls:'dots', id:this.getId('dotsFrame')} | 108 | {tag:'div', cls:'dots', id:this.getId('dotsFrame')} |
112 | // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ | 109 | // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ |
113 | // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} | 110 | // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} |
114 | // ]} | 111 | // ]} |
115 | ]} | 112 | ]} |
116 | ]} | 113 | ]} |
117 | ])); | 114 | ])); |
118 | //console.log("ELEMENT", this.element()); | 115 | //console.log("ELEMENT", this.element()); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); | 117 | MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); |
121 | 118 | ||
122 | MochiKit.Signal.connect(this.getElement('previousButton'), 'onclick', this, 'handlePrevious'); | 119 | MochiKit.Signal.connect(this.getElement('previousButton'), 'onclick', this, 'handlePrevious'); |
123 | MochiKit.Signal.connect(this.getElement('smallPreviousButton'),'onclick', this, 'handlePrevious'); | 120 | MochiKit.Signal.connect(this.getElement('smallPreviousButton'),'onclick', this, 'handlePrevious'); |
124 | 121 | ||
125 | MochiKit.Signal.connect(this.getElement('nextButton'), 'onclick', this, 'handleNext'); | 122 | MochiKit.Signal.connect(this.getElement('nextButton'), 'onclick', this, 'handleNext'); |
126 | MochiKit.Signal.connect(this.getElement('smallNextButton'), 'onclick', this, 'handleNext'); | 123 | MochiKit.Signal.connect(this.getElement('smallNextButton'), 'onclick', this, 'handleNext'); |
127 | 124 | ||
128 | this.enablePrevious(false); | 125 | this.enablePrevious(false); |
129 | this.enableNext(false); | 126 | this.enableNext(false); |
130 | 127 | ||
131 | // this.cursorMoved(); | 128 | // this.cursorMoved(); |
132 | }, | 129 | }, |
133 | 130 | ||
134 | //......................................................................... | 131 | //......................................................................... |
135 | 132 | ||
136 | 'renderStepsComponents': function () { | 133 | 'renderStepsComponents': function () { |
137 | varstepsFrame; | 134 | varstepsFrame; |
138 | var dotsFrame; | 135 | var dotsFrame; |
139 | 136 | ||
140 | stepsFrames = this.getElement('stepsFrame'); | 137 | stepsFrames = this.getElement('stepsFrame'); |
141 | MochiKit.DOM.setElementClass(stepsFrames, 'steps'); | 138 | MochiKit.DOM.setElementClass(stepsFrames, 'steps'); |
142 | MochiKit.DOM.addElementClass(stepsFrames, 'steps_' + this.steps().length); | 139 | MochiKit.DOM.addElementClass(stepsFrames, 'steps_' + this.steps().length); |
143 | 140 | ||
144 | stepsFrames.innerHTML = ""; | 141 | stepsFrames.innerHTML = ""; |
145 | this.append(stepsFrames, {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map( | 142 | this.append(stepsFrames, {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map( |
146 | MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), | 143 | MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), |
147 | this.steps())} | 144 | this.steps())} |
148 | ); | 145 | ); |
149 | 146 | ||
150 | dotsFrames = this.getElement('dotsFrame'); | 147 | dotsFrames = this.getElement('dotsFrame'); |
151 | MochiKit.DOM.setElementClass(dotsFrames, 'dots'); | 148 | MochiKit.DOM.setElementClass(dotsFrames, 'dots'); |
152 | MochiKit.DOM.addElementClass(dotsFrames, 'steps_' + this.steps().length); | 149 | MochiKit.DOM.addElementClass(dotsFrames, 'steps_' + this.steps().length); |
153 | 150 | ||
154 | dotsFrames.innerHTML = ""; | 151 | dotsFrames.innerHTML = ""; |
155 | this.append(dotsFrames, {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map( | 152 | this.append(dotsFrames, {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map( |
156 | function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}; }, | 153 | function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}; }, |
157 | this.steps())} | 154 | this.steps())} |
158 | ); | 155 | ); |
159 | }, | 156 | }, |
160 | 157 | ||
161 | //------------------------------------------------------------------------- | 158 | //------------------------------------------------------------------------- |
162 | 159 | ||
163 | 'handleExit': function (anEvent) { | 160 | 'handleExit': function (anEvent) { |
164 | anEvent.preventDefault(); | 161 | anEvent.preventDefault(); |
165 | 162 | ||
166 | MochiKit.Signal.signal(this, 'exit'); | 163 | MochiKit.Signal.signal(this, 'exit'); |
167 | }, | 164 | }, |
168 | 165 | ||
169 | //------------------------------------------------------------------------- | 166 | //------------------------------------------------------------------------- |
170 | 167 | ||
171 | 'handlePrevious': function (anEvent) { | 168 | 'handlePrevious': function (anEvent) { |
172 | anEvent.preventDefault(); | 169 | anEvent.preventDefault(); |
173 | 170 | ||
174 | // if (!MochiKit.DOM.hasElementClass(this.getElement('previousButton'), 'disabled')) { | 171 | // if (!MochiKit.DOM.hasElementClass(this.getElement('previousButton'), 'disabled')) { |
175 | // this.moveBackward(); | 172 | // this.moveBackward(); |
176 | // } | 173 | // } |
177 | 174 | ||
178 | MochiKit.Signal.signal(this, 'moveBackward'); | 175 | MochiKit.Signal.signal(this, 'moveBackward'); |
179 | }, | 176 | }, |
180 | 177 | ||
181 | 'handleNext': function (anEvent) { | 178 | 'handleNext': function (anEvent) { |
182 | anEvent.preventDefault(); | 179 | anEvent.preventDefault(); |
183 | 180 | ||
184 | // if (!MochiKit.DOM.hasElementClass(this.getElement('nextButton'), 'disabled')) { | 181 | // if (!MochiKit.DOM.hasElementClass(this.getElement('nextButton'), 'disabled')) { |
185 | // this.moveForward(); | 182 | // this.moveForward(); |
186 | // } | 183 | // } |
187 | 184 | ||
188 | MochiKit.Signal.signal(this, 'moveForward'); | 185 | MochiKit.Signal.signal(this, 'moveForward'); |
189 | }, | 186 | }, |
190 | 187 | ||
191 | //------------------------------------------------------------------------- | 188 | //------------------------------------------------------------------------- |
192 | 189 | ||
193 | 'currentStep': function () { | 190 | 'currentStep': function () { |
194 | return this._currentStep; | 191 | return this._currentStep; |
195 | }, | 192 | }, |
196 | 193 | ||
197 | 'markerInitialOffset': function () { | 194 | 'markerInitialOffset': function () { |
198 | return -246; | 195 | return -246; |
199 | }, | 196 | }, |
200 | 197 | ||
201 | 'markerStepOffset': function () { | 198 | 'markerStepOffset': function () { |
202 | return 410 / (this.steps().length - 1); | 199 | return 410 / (this.steps().length - 1); |
203 | // return 100; | 200 | // return 100; |
204 | }, | 201 | }, |
205 | 202 | ||
206 | //------------------------------------------------------------------------- | 203 | //------------------------------------------------------------------------- |
207 | 204 | ||
208 | 'moveToFirstStep': function (aCallback) { | 205 | 'moveToFirstStep': function (aCallback) { |
209 | varstepsToMove; | 206 | varstepsToMove; |
210 | 207 | ||
211 | stepsToMove = this._currentStep; | 208 | stepsToMove = this._currentStep; |
212 | this._currentStep = 0; | 209 | this._currentStep = 0; |
213 | 210 | ||
214 | this.enablePrevious(false); | 211 | this.enablePrevious(false); |
215 | this.enableNext(false); | 212 | this.enableNext(false); |
216 | // MochiKit.Signal.signal(this, 'moveBackward'); | 213 | // MochiKit.Signal.signal(this, 'moveBackward'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js index 39a1ccb..666afe9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js | |||
@@ -1,193 +1,190 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._element = args.element || null; | 32 | this._element = args.element || null; |
36 | 33 | ||
37 | this._slots = { | 34 | this._slots = { |
38 | }; | 35 | }; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TabSidePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TabSidePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.TabSidePanel component"; | 47 | return "Clipperz.PM.UI.Web.Components.TabSidePanel component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'deselectAllTabs': function() { | 52 | 'deselectAllTabs': function() { |
56 | var tabListItems; | 53 | var tabListItems; |
57 | 54 | ||
58 | tabListItems = [ | 55 | tabListItems = [ |
59 | 'cardsLI', | 56 | 'cardsLI', |
60 | // 'directLoginLI', | 57 | // 'directLoginLI', |
61 | 'accountLI', | 58 | 'accountLI', |
62 | 'dataLI', | 59 | 'dataLI', |
63 | 'toolsLI' | 60 | 'toolsLI' |
64 | ]; | 61 | ]; |
65 | 62 | ||
66 | //Clipperz.log("=== TabSidePanel.tabSelected anEvent.src().id", anEvent.src().id); | 63 | //Clipperz.log("=== TabSidePanel.tabSelected anEvent.src().id", anEvent.src().id); |
67 | for (var i in tabListItems) { | 64 | for (var i in tabListItems) { |
68 | //Clipperz.log("=== TabSidePanel.tabSelected aTabListItem", tabListItems[i]); | 65 | //Clipperz.log("=== TabSidePanel.tabSelected aTabListItem", tabListItems[i]); |
69 | MochiKit.DOM.removeElementClass(this.getId(tabListItems[i]), 'selected'); | 66 | MochiKit.DOM.removeElementClass(this.getId(tabListItems[i]), 'selected'); |
70 | } | 67 | } |
71 | }, | 68 | }, |
72 | 69 | ||
73 | 'selectTab': function(aTabName) { | 70 | 'selectTab': function(aTabName) { |
74 | this.deselectAllTabs(); | 71 | this.deselectAllTabs(); |
75 | MochiKit.DOM.addElementClass(this.getId(this.listItemIdForTabNamed(aTabName)), 'selected'); | 72 | MochiKit.DOM.addElementClass(this.getId(this.listItemIdForTabNamed(aTabName)), 'selected'); |
76 | MochiKit.Signal.signal(this, 'tabSelected', aTabName); | 73 | MochiKit.Signal.signal(this, 'tabSelected', aTabName); |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'tabNameForAnchorId': function(anId) { | 76 | 'tabNameForAnchorId': function(anId) { |
80 | var result; | 77 | var result; |
81 | 78 | ||
82 | switch(anId) { | 79 | switch(anId) { |
83 | case 'cards_tabSidePanel': | 80 | case 'cards_tabSidePanel': |
84 | result = 'cards'; | 81 | result = 'cards'; |
85 | break; | 82 | break; |
86 | // case 'directLogins_tabSidePanel': | 83 | // case 'directLogins_tabSidePanel': |
87 | // result = 'directLogins'; | 84 | // result = 'directLogins'; |
88 | // break; | 85 | // break; |
89 | case 'account_tabSidePanel': | 86 | case 'account_tabSidePanel': |
90 | result = 'account'; | 87 | result = 'account'; |
91 | break; | 88 | break; |
92 | case 'data_tabSidePanel': | 89 | case 'data_tabSidePanel': |
93 | result = 'data'; | 90 | result = 'data'; |
94 | break; | 91 | break; |
95 | case 'tools_tabSidePanel': | 92 | case 'tools_tabSidePanel': |
96 | result = 'tools'; | 93 | result = 'tools'; |
97 | break; | 94 | break; |
98 | } | 95 | } |
99 | 96 | ||
100 | return result; | 97 | return result; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'listItemIdForTabNamed': function(aTabName) { | 100 | 'listItemIdForTabNamed': function(aTabName) { |
104 | var result; | 101 | var result; |
105 | 102 | ||
106 | switch (aTabName) { | 103 | switch (aTabName) { |
107 | case 'cards': | 104 | case 'cards': |
108 | result = 'cardsLI'; | 105 | result = 'cardsLI'; |
109 | break; | 106 | break; |
110 | // case 'directLogins': | 107 | // case 'directLogins': |
111 | // result = 'directLoginLI'; | 108 | // result = 'directLoginLI'; |
112 | // break; | 109 | // break; |
113 | case 'account': | 110 | case 'account': |
114 | result = 'accountLI'; | 111 | result = 'accountLI'; |
115 | break; | 112 | break; |
116 | case 'data': | 113 | case 'data': |
117 | result = 'dataLI'; | 114 | result = 'dataLI'; |
118 | break; | 115 | break; |
119 | case 'tools': | 116 | case 'tools': |
120 | result = 'toolsLI'; | 117 | result = 'toolsLI'; |
121 | break; | 118 | break; |
122 | } | 119 | } |
123 | 120 | ||
124 | return result; | 121 | return result; |
125 | }, | 122 | }, |
126 | 123 | ||
127 | 'tabSelected': function (anEvent) { | 124 | 'tabSelected': function (anEvent) { |
128 | this.selectTab(this.tabNameForAnchorId(anEvent.src().id)); | 125 | this.selectTab(this.tabNameForAnchorId(anEvent.src().id)); |
129 | // anEvent.stop(); | 126 | // anEvent.stop(); |
130 | anEvent.preventDefault(); | 127 | anEvent.preventDefault(); |
131 | }, | 128 | }, |
132 | 129 | ||
133 | //------------------------------------------------------------------------- | 130 | //------------------------------------------------------------------------- |
134 | 131 | ||
135 | 'addCard': function (anEvent) { | 132 | 'addCard': function (anEvent) { |
136 | anEvent.stop(); | 133 | anEvent.stop(); |
137 | MochiKit.Signal.signal(this, 'addCard', anEvent.src()); | 134 | MochiKit.Signal.signal(this, 'addCard', anEvent.src()); |
138 | }, | 135 | }, |
139 | 136 | ||
140 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
141 | 138 | ||
142 | 'renderSelf': function(/*aContainer, aPosition*/) { | 139 | 'renderSelf': function(/*aContainer, aPosition*/) { |
143 | this.append(this.element(), [ | 140 | this.append(this.element(), [ |
144 | {tag:'div', cls:'header'}, | 141 | {tag:'div', cls:'header'}, |
145 | {tag:'div', cls:'body', children:[ | 142 | {tag:'div', cls:'body', children:[ |
146 | {tag:'ul', cls:'mainTabs', children:[ | 143 | {tag:'ul', cls:'mainTabs', children:[ |
147 | {tag:'li', id:this.getId('cardsLI'), cls:'cards', children:[ | 144 | {tag:'li', id:this.getId('cardsLI'), cls:'cards', children:[ |
148 | {tag:'a', id:'cards_tabSidePanel', href:'#', html:"cards"}, | 145 | {tag:'a', id:'cards_tabSidePanel', href:'#', html:"cards"}, |
149 | {tag:'div', cls:'selectionHighlighter', children:[ | 146 | {tag:'div', cls:'selectionHighlighter', children:[ |
150 | {tag:'img', src:'./images/old/main/tabs/selectionHighligher.png'}, | 147 | {tag:'img', src:'./images/old/main/tabs/selectionHighligher.png'}, |
151 | {tag:'a', id:this.getId('addCardA'), cls:'add', href:'#', children:[ | 148 | {tag:'a', id:this.getId('addCardA'), cls:'add', href:'#', children:[ |
152 | {tag:'span', html:"add"}, | 149 | {tag:'span', html:"add"}, |
153 | {tag:'h3', html:"+"} | 150 | {tag:'h3', html:"+"} |
154 | ]} | 151 | ]} |
155 | ]} | 152 | ]} |
156 | ]} | 153 | ]} |
157 | ]}, | 154 | ]}, |
158 | {tag:'ul', cls:'otherTabs', children:[ | 155 | {tag:'ul', cls:'otherTabs', children:[ |
159 | {tag:'li', id:this.getId('accountLI'), children:[ | 156 | {tag:'li', id:this.getId('accountLI'), children:[ |
160 | {tag:'a', id:'account_tabSidePanel', href:'#', html:"account"}, | 157 | {tag:'a', id:'account_tabSidePanel', href:'#', html:"account"}, |
161 | {tag:'div', cls:'selectionHighlighter', children:[ | 158 | {tag:'div', cls:'selectionHighlighter', children:[ |
162 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} | 159 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} |
163 | ]} | 160 | ]} |
164 | ]}, | 161 | ]}, |
165 | {tag:'li', id:this.getId('dataLI'), children:[ | 162 | {tag:'li', id:this.getId('dataLI'), children:[ |
166 | {tag:'a', id:'data_tabSidePanel', href:'#', html:"data"}, | 163 | {tag:'a', id:'data_tabSidePanel', href:'#', html:"data"}, |
167 | {tag:'div', cls:'selectionHighlighter', children:[ | 164 | {tag:'div', cls:'selectionHighlighter', children:[ |
168 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} | 165 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} |
169 | ]} | 166 | ]} |
170 | ]}, | 167 | ]}, |
171 | {tag:'li', id:this.getId('toolsLI'), children:[ | 168 | {tag:'li', id:this.getId('toolsLI'), children:[ |
172 | {tag:'a', id:'tools_tabSidePanel', href:'#', html:"tools"}, | 169 | {tag:'a', id:'tools_tabSidePanel', href:'#', html:"tools"}, |
173 | {tag:'div', cls:'selectionHighlighter', children:[ | 170 | {tag:'div', cls:'selectionHighlighter', children:[ |
174 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} | 171 | {tag:'img', src:'./images/old/main/tabs/selectionHighligherGray.png'} |
175 | ]} | 172 | ]} |
176 | ]} | 173 | ]} |
177 | ]} | 174 | ]} |
178 | ]}, | 175 | ]}, |
179 | {tag:'div', cls:'footer'} | 176 | {tag:'div', cls:'footer'} |
180 | ]); | 177 | ]); |
181 | 178 | ||
182 | MochiKit.Signal.connect('cards_tabSidePanel', 'onclick', this, 'tabSelected'); | 179 | MochiKit.Signal.connect('cards_tabSidePanel', 'onclick', this, 'tabSelected'); |
183 | // MochiKit.Signal.connect('directLogins_tabSidePanel', 'onclick', this, 'tabSelected'); | 180 | // MochiKit.Signal.connect('directLogins_tabSidePanel', 'onclick', this, 'tabSelected'); |
184 | MochiKit.Signal.connect('account_tabSidePanel', 'onclick', this, 'tabSelected'); | 181 | MochiKit.Signal.connect('account_tabSidePanel', 'onclick', this, 'tabSelected'); |
185 | MochiKit.Signal.connect('data_tabSidePanel', 'onclick', this, 'tabSelected'); | 182 | MochiKit.Signal.connect('data_tabSidePanel', 'onclick', this, 'tabSelected'); |
186 | MochiKit.Signal.connect('tools_tabSidePanel', 'onclick', this, 'tabSelected'); | 183 | MochiKit.Signal.connect('tools_tabSidePanel', 'onclick', this, 'tabSelected'); |
187 | MochiKit.Signal.connect(this.getId('addCardA'), 'onclick', this, 'addCard'); | 184 | MochiKit.Signal.connect(this.getId('addCardA'), 'onclick', this, 'addCard'); |
188 | }, | 185 | }, |
189 | 186 | ||
190 | //------------------------------------------------------------------------- | 187 | //------------------------------------------------------------------------- |
191 | 188 | ||
192 | __syntaxFix__: "syntax fix" | 189 | __syntaxFix__: "syntax fix" |
193 | }); | 190 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js index 97e81b4..3dc9ce9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js | |||
@@ -1,53 +1,50 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.TextColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.TextColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TextColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TextColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.TextColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.TextColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //----------------------------------------------------- | 45 | //----------------------------------------------------- |
49 | 46 | ||
50 | '__syntax_fix__' : 'syntax fix' | 47 | '__syntax_fix__' : 'syntax fix' |
51 | 48 | ||
52 | }); | 49 | }); |
53 | 50 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js index 179c495..3ee6189 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js | |||
@@ -1,113 +1,110 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.ToolsPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.ToolsPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._initiallySelectedTab = args.selected || 'PASSWORD_GENERATOR'; | 33 | this._initiallySelectedTab = args.selected || 'PASSWORD_GENERATOR'; |
37 | this._tabPanelControllerConfiguration = { | 34 | this._tabPanelControllerConfiguration = { |
38 | 'PASSWORD_GENERATOR': { | 35 | 'PASSWORD_GENERATOR': { |
39 | tab:'passwordGeneratorTab', | 36 | tab:'passwordGeneratorTab', |
40 | panel:'passwordGeneratorPanel' | 37 | panel:'passwordGeneratorPanel' |
41 | }, | 38 | }, |
42 | 'BOOKMARKLET': { | 39 | 'BOOKMARKLET': { |
43 | tab:'bookmarkletTab', | 40 | tab:'bookmarkletTab', |
44 | panel:'bookmarkletPanel' | 41 | panel:'bookmarkletPanel' |
45 | }, | 42 | }, |
46 | 'COMPACT_EDITION': { | 43 | 'COMPACT_EDITION': { |
47 | tab:'compactEditionTab', | 44 | tab:'compactEditionTab', |
48 | panel:'compactEditionPanel' | 45 | panel:'compactEditionPanel' |
49 | }, | 46 | }, |
50 | 'HTTP_AUTH': { | 47 | 'HTTP_AUTH': { |
51 | tab:'httpAuthTab', | 48 | tab:'httpAuthTab', |
52 | panel:'httpAuthPanel' | 49 | panel:'httpAuthPanel' |
53 | } | 50 | } |
54 | }; | 51 | }; |
55 | 52 | ||
56 | return this; | 53 | return this; |
57 | } | 54 | } |
58 | 55 | ||
59 | //============================================================================= | 56 | //============================================================================= |
60 | 57 | ||
61 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 58 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'toString': function () { | 62 | 'toString': function () { |
66 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
72 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
73 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
74 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
75 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
76 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, |
77 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, | 74 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, |
78 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, | 75 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, |
79 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} | 76 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} |
80 | ]} | 77 | ]} |
81 | ]} | 78 | ]} |
82 | ]}, | 79 | ]}, |
83 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
84 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
85 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
86 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
87 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ | 84 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ |
88 | {tag:'h3', html:"Password generator"} | 85 | {tag:'h3', html:"Password generator"} |
89 | ]}, | 86 | ]}, |
90 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ | 87 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ |
91 | {tag:'h3', html:"Bookmarklet"} | 88 | {tag:'h3', html:"Bookmarklet"} |
92 | ]}, | 89 | ]}, |
93 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ | 90 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ |
94 | {tag:'h3', html:"Compact edition"} | 91 | {tag:'h3', html:"Compact edition"} |
95 | ]}, | 92 | ]}, |
96 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ | 93 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ |
97 | {tag:'h3', html:"HTTP Auth"} | 94 | {tag:'h3', html:"HTTP Auth"} |
98 | ]} | 95 | ]} |
99 | ]} | 96 | ]} |
100 | ]} | 97 | ]} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'footer'} | 100 | {tag:'div', cls:'footer'} |
104 | ]); | 101 | ]); |
105 | 102 | ||
106 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 108 | ||
112 | __syntaxFix__: "syntax fix" | 109 | __syntaxFix__: "syntax fix" |
113 | }); | 110 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js index 5b9d522..21ccf2a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js | |||
@@ -1,184 +1,181 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._openFromElement = args.openFromElement || null; | 33 | this._openFromElement = args.openFromElement || null; |
37 | this._onOkCloseToElement = args.onOkCloseToElement || null; | 34 | this._onOkCloseToElement = args.onOkCloseToElement || null; |
38 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; | 35 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; |
39 | 36 | ||
40 | this._progressBarComponent = null; | 37 | this._progressBarComponent = null; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.UnlockPasswordComponent component"; | 49 | return "Clipperz.PM.UI.Web.Components.UnlockPasswordComponent component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'getPassphrase': function () { | 54 | 'getPassphrase': function () { |
58 | /* var deferredResult; | 55 | /* var deferredResult; |
59 | 56 | ||
60 | if (this.passphrase() == null) { | 57 | if (this.passphrase() == null) { |
61 | this.deferredShowModal({'openFromElement': this.openFromElement()}); | 58 | this.deferredShowModal({'openFromElement': this.openFromElement()}); |
62 | deferredResult = this.deferred(); | 59 | deferredResult = this.deferred(); |
63 | } else { | 60 | } else { |
64 | deferredResult = MochiKit.Async.succeed(this.passphrase()); | 61 | deferredResult = MochiKit.Async.succeed(this.passphrase()); |
65 | } | 62 | } |
66 | 63 | ||
67 | return deferredResult; | 64 | return deferredResult; |
68 | */ | 65 | */ |
69 | 66 | ||
70 | this.deferredShowModal({'openFromElement': this.openFromElement()}); | 67 | this.deferredShowModal({'openFromElement': this.openFromElement()}); |
71 | 68 | ||
72 | return this.deferred(); | 69 | return this.deferred(); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'deferredShowModal': function (someParameters) { | 74 | 'deferredShowModal': function (someParameters) { |
78 | return Clipperz.Async.callbacks("UnlockPasswordComponent.deferredShowModal", [ | 75 | return Clipperz.Async.callbacks("UnlockPasswordComponent.deferredShowModal", [ |
79 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.deferredShowModal, this, someParameters), | 76 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.deferredShowModal, this, someParameters), |
80 | MochiKit.Base.method(this, 'getElement', 'passphrase'), | 77 | MochiKit.Base.method(this, 'getElement', 'passphrase'), |
81 | MochiKit.Base.methodcaller('focus') | 78 | MochiKit.Base.methodcaller('focus') |
82 | ], {trace:false}) | 79 | ], {trace:false}) |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'openFromElement': function () { | 84 | 'openFromElement': function () { |
88 | return this._openFromElement; | 85 | return this._openFromElement; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | 'onOkCloseToElement': function () { | 88 | 'onOkCloseToElement': function () { |
92 | return this._onOkCloseToElement; | 89 | return this._onOkCloseToElement; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | 'onCancelCloseToElement': function () { | 92 | 'onCancelCloseToElement': function () { |
96 | return this._onCancelCloseToElement; | 93 | return this._onCancelCloseToElement; |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'renderSelf': function() { | 98 | 'renderSelf': function() { |
102 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.renderSelf.apply(this, arguments); | 99 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.renderSelf.apply(this, arguments); |
103 | 100 | ||
104 | this.append(this.getElement('container'), {tag:'div', cls:'passphrase', children: [ | 101 | this.append(this.getElement('container'), {tag:'div', cls:'passphrase', children: [ |
105 | // {tag:'form', id:this.getId('passphraseForm'), children:[ | 102 | // {tag:'form', id:this.getId('passphraseForm'), children:[ |
106 | {tag:'input', id:this.getId('passphrase'), type:'password', name:'passphrase', value:''} | 103 | {tag:'input', id:this.getId('passphrase'), type:'password', name:'passphrase', value:''} |
107 | // ]} | 104 | // ]} |
108 | ]}); | 105 | ]}); |
109 | 106 | ||
110 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn', this, 'userSuccessfullyLoggedInHandler'); | 107 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn', this, 'userSuccessfullyLoggedInHandler'); |
111 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userLoginFailed', this, 'userLoginFailedHandler'); | 108 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userLoginFailed', this, 'userLoginFailedHandler'); |
112 | 109 | ||
113 | 110 | ||
114 | // MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('passphrase'), 'focus')); | 111 | // MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('passphrase'), 'focus')); |
115 | // this.getElement('passphrase').select(); | 112 | // this.getElement('passphrase').select(); |
116 | }, | 113 | }, |
117 | 114 | ||
118 | //------------------------------------------------------------------------- | 115 | //------------------------------------------------------------------------- |
119 | 116 | ||
120 | 'showProgressBar': function () { | 117 | 'showProgressBar': function () { |
121 | varprogressBarElement; | 118 | varprogressBarElement; |
122 | 119 | ||
123 | this.getElement('container').innerHTML = ''; | 120 | this.getElement('container').innerHTML = ''; |
124 | 121 | ||
125 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); | 122 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); |
126 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); | 123 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); |
127 | 124 | ||
128 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); | 125 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); |
129 | }, | 126 | }, |
130 | 127 | ||
131 | //------------------------------------------------------------------------- | 128 | //------------------------------------------------------------------------- |
132 | 129 | ||
133 | 'showFailure': function () { | 130 | 'showFailure': function () { |
134 | this.setType('ALERT'); | 131 | this.setType('ALERT'); |
135 | this.setTitle("Login failed"); | 132 | this.setTitle("Login failed"); |
136 | this.setText("Wrong passphrase; the unlock has failed."); | 133 | this.setText("Wrong passphrase; the unlock has failed."); |
137 | this.getElement('container').innerHTML = ''; | 134 | this.getElement('container').innerHTML = ''; |
138 | this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); | 135 | this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); |
139 | }, | 136 | }, |
140 | 137 | ||
141 | //------------------------------------------------------------------------- | 138 | //------------------------------------------------------------------------- |
142 | 139 | ||
143 | 'closeOk': function () { | 140 | 'closeOk': function () { |
144 | var passphrase; | 141 | var passphrase; |
145 | 142 | ||
146 | passphrase = this.getElement('passphrase').value; | 143 | passphrase = this.getElement('passphrase').value; |
147 | this.showProgressBar(); | 144 | this.showProgressBar(); |
148 | // this.deferred().callback(passphrase); | 145 | // this.deferred().callback(passphrase); |
149 | MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback', passphrase)); | 146 | MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback', passphrase)); |
150 | this._deferred = null; | 147 | this._deferred = null; |
151 | }, | 148 | }, |
152 | 149 | ||
153 | 'closeCancel': function () { | 150 | 'closeCancel': function () { |
154 | this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); | 151 | this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); |
155 | this.deferred().cancel(); | 152 | this.deferred().cancel(); |
156 | this._deferred = null; | 153 | this._deferred = null; |
157 | }, | 154 | }, |
158 | 155 | ||
159 | //------------------------------------------------------------------------- | 156 | //------------------------------------------------------------------------- |
160 | 157 | ||
161 | 'userSuccessfullyLoggedInHandler': function (anEvent) { | 158 | 'userSuccessfullyLoggedInHandler': function (anEvent) { |
162 | this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); | 159 | this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); |
163 | }, | 160 | }, |
164 | 161 | ||
165 | 'userLoginFailedHandler': function (anEvent) { | 162 | 'userLoginFailedHandler': function (anEvent) { |
166 | //console.log("############### FAILED LOGIN ################"); | 163 | //console.log("############### FAILED LOGIN ################"); |
167 | this.showFailure(); | 164 | this.showFailure(); |
168 | }, | 165 | }, |
169 | 166 | ||
170 | //------------------------------------------------------------------------- | 167 | //------------------------------------------------------------------------- |
171 | /* | 168 | /* |
172 | 'deferredShow': function (someArgs, aResult) { | 169 | 'deferredShow': function (someArgs, aResult) { |
173 | this.deferredShowModal(someArgs); | 170 | this.deferredShowModal(someArgs); |
174 | 171 | ||
175 | // this.deferred().addMethod(this, 'deferredHideModal', {closeToElement:someArgs.onOkCloseToElement }); | 172 | // this.deferred().addMethod(this, 'deferredHideModal', {closeToElement:someArgs.onOkCloseToElement }); |
176 | // this.deferred().addErrback (MochiKit.Base.method(this, 'deferredHideModal', {closeToElement:someArgs.onCancelCloseToElement })); | 173 | // this.deferred().addErrback (MochiKit.Base.method(this, 'deferredHideModal', {closeToElement:someArgs.onCancelCloseToElement })); |
177 | // this.deferred().addCallback(MochiKit.Async.succeed, aResult); | 174 | // this.deferred().addCallback(MochiKit.Async.succeed, aResult); |
178 | 175 | ||
179 | return this.deferred(); | 176 | return this.deferred(); |
180 | }, | 177 | }, |
181 | */ | 178 | */ |
182 | //------------------------------------------------------------------------- | 179 | //------------------------------------------------------------------------- |
183 | __syntaxFix__: "syntax fix" | 180 | __syntaxFix__: "syntax fix" |
184 | }); | 181 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js index f26118e..d699dc6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { | 28 | Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.UserInfoBox.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.UserInfoBox.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = {}; | 33 | this._slots = {}; |
37 | this._isLocked = false; | 34 | this._isLocked = false; |
38 | this._lockTooltip = null; | 35 | this._lockTooltip = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.UserInfoBox component"; | 47 | return "Clipperz.PM.UI.Web.Components.UserInfoBox component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'handleLogout': function(anEvent) { | 52 | 'handleLogout': function(anEvent) { |
56 | //Clipperz.log(">>> UserInfoBox.handleLogout"); | 53 | //Clipperz.log(">>> UserInfoBox.handleLogout"); |
57 | anEvent.preventDefault(); | 54 | anEvent.preventDefault(); |
58 | MochiKit.Signal.signal(this, 'logout'); | 55 | MochiKit.Signal.signal(this, 'logout'); |
59 | //Clipperz.log("<<< UserInfoBox.handleLogout"); | 56 | //Clipperz.log("<<< UserInfoBox.handleLogout"); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'lockTooltip': function () { | 61 | 'lockTooltip': function () { |
65 | return this._lockTooltip; | 62 | return this._lockTooltip; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'isLocked': function () { | 67 | 'isLocked': function () { |
71 | return this._isLocked; | 68 | return this._isLocked; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setIsLocked': function (aValue) { | 71 | 'setIsLocked': function (aValue) { |
75 | this._isLocked = aValue; | 72 | this._isLocked = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'toggleLock': function(anEvent) { | 75 | 'toggleLock': function(anEvent) { |
79 | var deferredResult; | 76 | var deferredResult; |
80 | var shouldLock; | 77 | var shouldLock; |
81 | 78 | ||
82 | //console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]"); | 79 | //console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]"); |
83 | anEvent.preventDefault(); | 80 | anEvent.preventDefault(); |
84 | this.lockTooltip().hide(); | 81 | this.lockTooltip().hide(); |
85 | 82 | ||
86 | shouldLock = (this.isLocked() == false); | 83 | shouldLock = (this.isLocked() == false); |
87 | 84 | ||
88 | if (shouldLock) { | 85 | if (shouldLock) { |
89 | var maskElement; | 86 | var maskElement; |
90 | 87 | ||
91 | this.setIsLocked(true); | 88 | this.setIsLocked(true); |
92 | maskElement = this.getId('modalDialogMask'); | 89 | maskElement = this.getId('modalDialogMask'); |
93 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [lock]", [ | 90 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [lock]", [ |
94 | MochiKit.Base.partial(MochiKit.DOM.addElementClass, this.element(), 'locked'), | 91 | MochiKit.Base.partial(MochiKit.DOM.addElementClass, this.element(), 'locked'), |
95 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.appear, maskElement, {from:0.0, to:0.75, duration:0.5}), | 92 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.appear, maskElement, {from:0.0, to:0.75, duration:0.5}), |
96 | MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), | 93 | MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), |
97 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') | 94 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') |
98 | ], {trace:false}); | 95 | ], {trace:false}); |
99 | } else { | 96 | } else { |
100 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ | 97 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ |
101 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') | 98 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') |
102 | ], {trace:false}); | 99 | ], {trace:false}); |
103 | } | 100 | } |
104 | //console.log("<<< UserInfoBox.toggleLock"); | 101 | //console.log("<<< UserInfoBox.toggleLock"); |
105 | 102 | ||
106 | return deferredResult; | 103 | return deferredResult; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'unlock': function () { | 108 | 'unlock': function () { |
112 | var deferredResult; | 109 | var deferredResult; |
113 | var maskElement; | 110 | var maskElement; |
114 | 111 | ||
115 | this.setIsLocked(false); | 112 | this.setIsLocked(false); |
116 | maskElement = this.getId('modalDialogMask'); | 113 | maskElement = this.getId('modalDialogMask'); |
117 | 114 | ||
118 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.unlock", [ | 115 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.unlock", [ |
119 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), | 116 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), |
120 | // Clipperz.Visual.deferredAnimation(MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), | 117 | // Clipperz.Visual.deferredAnimation(MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), |
121 | MochiKit.Base.partial(MochiKit.DOM.removeElementClass, this.element(), 'locked') | 118 | MochiKit.Base.partial(MochiKit.DOM.removeElementClass, this.element(), 'locked') |
122 | ], {trace:false}); | 119 | ], {trace:false}); |
123 | }, | 120 | }, |
124 | 121 | ||
125 | //------------------------------------------------------------------------- | 122 | //------------------------------------------------------------------------- |
126 | 123 | ||
127 | 'askForPassphrase': function () { | 124 | 'askForPassphrase': function () { |
128 | varunlockPasswordComponent; | 125 | varunlockPasswordComponent; |
129 | /* | 126 | /* |
130 | vardeferredResult; | 127 | vardeferredResult; |
131 | 128 | ||
132 | deferredResult = new Clipperz.Async.Deferred("UserInfoBox.askForPassphrase", {trace:false}); | 129 | deferredResult = new Clipperz.Async.Deferred("UserInfoBox.askForPassphrase", {trace:false}); |
133 | deferredResult.addCallback(MochiKit.Async.succeed, 'test'); | 130 | deferredResult.addCallback(MochiKit.Async.succeed, 'test'); |
134 | 131 | ||
135 | deferredResult.callback(); | 132 | deferredResult.callback(); |
136 | 133 | ||
137 | return deferredResult; | 134 | return deferredResult; |
138 | */ | 135 | */ |
139 | //console.log(">>> UserInfoBox.askForPassphrase"); | 136 | //console.log(">>> UserInfoBox.askForPassphrase"); |
140 | unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ | 137 | unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ |
141 | 'title':"Unlock account", | 138 | 'title':"Unlock account", |
142 | 'text': "Insert the passprase to unlock the account", | 139 | 'text': "Insert the passprase to unlock the account", |
143 | 'type': 'INFO', | 140 | 'type': 'INFO', |
144 | 'buttons': [ | 141 | 'buttons': [ |
145 | {text:"Cancel",result:'CANCEL'}, | 142 | {text:"Cancel",result:'CANCEL'}, |
146 | {text:"Unlock", result:'OK',isDefault:true} | 143 | {text:"Unlock", result:'OK',isDefault:true} |
147 | ], | 144 | ], |
148 | 'openFromElement': this.getElement('lock'), | 145 | 'openFromElement': this.getElement('lock'), |
149 | 'onOkCloseToElement': null, | 146 | 'onOkCloseToElement': null, |
150 | 'onCancelCloseToElement':this.getId('lock') | 147 | 'onCancelCloseToElement':this.getId('lock') |
151 | }); | 148 | }); |
152 | //console.log("<<< UserInfoBox.askForPassphrase"); | 149 | //console.log("<<< UserInfoBox.askForPassphrase"); |
153 | 150 | ||
154 | return unlockPasswordComponent.getPassphrase(); | 151 | return unlockPasswordComponent.getPassphrase(); |
155 | }, | 152 | }, |
156 | 153 | ||
157 | //========================================================================= | 154 | //========================================================================= |
158 | 155 | ||
159 | 'renderSelf': function(/*aContainer, aPosition*/) { | 156 | 'renderSelf': function(/*aContainer, aPosition*/) { |
160 | this.append(this.element(), [ | 157 | this.append(this.element(), [ |
161 | // {tag:'canvas', id:this.getId('canvas'), cls:'canvas', width:'188', height:'154'}, | 158 | // {tag:'canvas', id:this.getId('canvas'), cls:'canvas', width:'188', height:'154'}, |
162 | {tag:'div', cls:'header', children:[ | 159 | {tag:'div', cls:'header', children:[ |
163 | {tag:'h1', html:"Welcome"}, | 160 | {tag:'h1', html:"Welcome"}, |
164 | {tag:'a', cls:'lockButton', href:'#', id:this.getId('lock'), html:' '} | 161 | {tag:'a', cls:'lockButton', href:'#', id:this.getId('lock'), html:' '} |
165 | ]}, | 162 | ]}, |
166 | {tag:'div', cls:'body', children:[ | 163 | {tag:'div', cls:'body', children:[ |
167 | {tag:'h3', id:this.getId('username'), html:""}, | 164 | {tag:'h3', id:this.getId('username'), html:""}, |
168 | {tag:'ul', children:[ | 165 | {tag:'ul', children:[ |
169 | {tag:'li', id:this.getId('cards'), children:[ | 166 | {tag:'li', id:this.getId('cards'), children:[ |
170 | {tag:'span', id:this.getId('cardsNumber'), cls:'number', html:"-"}, | 167 | {tag:'span', id:this.getId('cardsNumber'), cls:'number', html:"-"}, |
171 | {tag:'span', id:this.getId('cardsLabel'), html:"cards"} | 168 | {tag:'span', id:this.getId('cardsLabel'), html:"cards"} |
172 | ]}, | 169 | ]}, |
173 | {tag:'li', id:this.getId('directLogins'), children:[ | 170 | {tag:'li', id:this.getId('directLogins'), children:[ |
174 | {tag:'span', id:this.getId('directLoginsNumber'), cls:'number', html:"-"}, | 171 | {tag:'span', id:this.getId('directLoginsNumber'), cls:'number', html:"-"}, |
175 | {tag:'span', id:this.getId('directLoginsLabel'), html:"direct logins"} | 172 | {tag:'span', id:this.getId('directLoginsLabel'), html:"direct logins"} |
176 | ]} | 173 | ]} |
177 | ]}, | 174 | ]}, |
178 | {tag:'a', href:'#', id:this.getId('logout'), html:"logout >"} | 175 | {tag:'a', href:'#', id:this.getId('logout'), html:"logout >"} |
179 | ]}, | 176 | ]}, |
180 | {tag:'div', cls:'footer'} | 177 | {tag:'div', cls:'footer'} |
181 | ]); | 178 | ]); |
182 | 179 | ||
183 | MochiKit.Signal.connect(this.getElement('logout'), 'onclick', this, 'handleLogout'); | 180 | MochiKit.Signal.connect(this.getElement('logout'), 'onclick', this, 'handleLogout'); |
184 | MochiKit.Signal.connect(this.getElement('lock'), 'onclick', this, 'toggleLock'); | 181 | MochiKit.Signal.connect(this.getElement('lock'), 'onclick', this, 'toggleLock'); |
185 | 182 | ||
186 | this._lockTooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ | 183 | this._lockTooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ |
187 | element:this.getElement('lock'), | 184 | element:this.getElement('lock'), |
188 | text: "Click here to lock/unlock your account.", | 185 | text: "Click here to lock/unlock your account.", |
189 | position:'RIGHT' | 186 | position:'RIGHT' |
190 | }); | 187 | }); |
191 | 188 | ||
192 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, | 189 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, |
193 | {tag:'div', id:this.getId('modalDialogWrapper'), cls:'modalDialogWrapper', children:[ | 190 | {tag:'div', id:this.getId('modalDialogWrapper'), cls:'modalDialogWrapper', children:[ |
194 | {tag:'div', id:this.getId('modalDialogMask'), cls:'modalDialogMask userInfoBoxMask'} | 191 | {tag:'div', id:this.getId('modalDialogMask'), cls:'modalDialogMask userInfoBoxMask'} |
195 | ]} | 192 | ]} |
196 | ); | 193 | ); |
197 | MochiKit.Style.hideElement(this.getId('modalDialogMask')); | 194 | MochiKit.Style.hideElement(this.getId('modalDialogMask')); |
198 | 195 | ||
199 | // this.drawUserInfoBackground(this.getElement('canvas')); | 196 | // this.drawUserInfoBackground(this.getElement('canvas')); |
200 | }, | 197 | }, |
201 | 198 | ||
202 | //------------------------------------------------------------------------- | 199 | //------------------------------------------------------------------------- |
203 | /* | 200 | /* |
204 | 'drawUserInfoBackground': function (canvas) { | 201 | 'drawUserInfoBackground': function (canvas) { |
205 | var kMyDrawingFunctionWidth = 188.0; | 202 | var kMyDrawingFunctionWidth = 188.0; |
206 | var kMyDrawingFunctionHeight = 154.0; | 203 | var kMyDrawingFunctionHeight = 154.0; |
207 | 204 | ||
208 | var context = canvas.getContext("2d"); | 205 | var context = canvas.getContext("2d"); |
209 | var color; | 206 | var color; |
210 | var resolution; | 207 | var resolution; |
211 | var alignStroke; | 208 | var alignStroke; |
212 | var path; | 209 | var path; |
213 | var pointX; | 210 | var pointX; |
214 | var pointY; | 211 | var pointY; |
215 | var controlPoint1X; | 212 | var controlPoint1X; |
216 | var controlPoint1Y; | 213 | var controlPoint1Y; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js index 05563bf..9a0e744 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.AppController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.AppController = function(args) { |
32 | 29 | ||
33 | this._user = null; | 30 | this._user = null; |
34 | this._tabSlotNames = { | 31 | this._tabSlotNames = { |
35 | //tabName: slotName | 32 | //tabName: slotName |
36 | 'cards': 'cardGrid', | 33 | 'cards': 'cardGrid', |
37 | // 'directLogins':'directLoginGrid', | 34 | // 'directLogins':'directLoginGrid', |
38 | 'account': 'accountPanel', | 35 | 'account': 'accountPanel', |
39 | 'data': 'dataPanel', | 36 | 'data': 'dataPanel', |
40 | 'tools': 'toolsPanel' | 37 | 'tools': 'toolsPanel' |
41 | }; | 38 | }; |
42 | 39 | ||
43 | //controllers | 40 | //controllers |
44 | this._cardsController= null; | 41 | this._cardsController= null; |
45 | //this._directLoginsController = null; | 42 | //this._directLoginsController = null; |
46 | this._filterController = null; //new Clipperz.PM.UI.Web.Controllers.FilterController(); | 43 | this._filterController = null; //new Clipperz.PM.UI.Web.Controllers.FilterController(); |
47 | 44 | ||
48 | //components | 45 | //components |
49 | this._appPage = null; | 46 | this._appPage = null; |
50 | this._userInfoBox = null; | 47 | this._userInfoBox = null; |
51 | this._tabSidePanel = null; | 48 | this._tabSidePanel = null; |
52 | 49 | ||
53 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'editCard', this, 'handleEditCard'); | 50 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'editCard', this, 'handleEditCard'); |
54 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'deleteCard',this, 'handleDeleteCard'); | 51 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'deleteCard',this, 'handleDeleteCard'); |
55 | 52 | ||
56 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userDataSuccessfullySaved',this, 'userDataSuccessfullySavedHandler'); | 53 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userDataSuccessfullySaved',this, 'userDataSuccessfullySavedHandler'); |
57 | 54 | ||
58 | return this; | 55 | return this; |
59 | } | 56 | } |
60 | 57 | ||
61 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { | 58 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { |
62 | 59 | ||
63 | 'toString': function() { | 60 | 'toString': function() { |
64 | return "Clipperz.PM.UI.Web.Controllers.AppController"; | 61 | return "Clipperz.PM.UI.Web.Controllers.AppController"; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //----------------------------------------------------------------------------- | 64 | //----------------------------------------------------------------------------- |
68 | 65 | ||
69 | 'setUser': function(anUser) { | 66 | 'setUser': function(anUser) { |
70 | this._user = anUser; | 67 | this._user = anUser; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | 'user': function() { | 70 | 'user': function() { |
74 | return this._user; | 71 | return this._user; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //----------------------------------------------------------------------------- | 74 | //----------------------------------------------------------------------------- |
78 | /* | 75 | /* |
79 | 'tabSlotNames': function() { | 76 | 'tabSlotNames': function() { |
80 | return this._tabSlotNames; | 77 | return this._tabSlotNames; |
81 | }, | 78 | }, |
82 | */ | 79 | */ |
83 | 'slotNameForTab': function(aTabName) { | 80 | 'slotNameForTab': function(aTabName) { |
84 | return this._tabSlotNames[aTabName]; | 81 | return this._tabSlotNames[aTabName]; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | 'hideAllAppPageTabSlots': function() { | 84 | 'hideAllAppPageTabSlots': function() { |
88 | var aTabName; | 85 | var aTabName; |
89 | 86 | ||
90 | for (aTabName in this._tabSlotNames) { | 87 | for (aTabName in this._tabSlotNames) { |
91 | this.appPage().hideSlot(this.slotNameForTab(aTabName)); | 88 | this.appPage().hideSlot(this.slotNameForTab(aTabName)); |
92 | } | 89 | } |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //----------------------------------------------------------------------------- | 92 | //----------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'appPage': function() { | 94 | 'appPage': function() { |
98 | if (this._appPage == null) { | 95 | if (this._appPage == null) { |
99 | this._appPage = new Clipperz.PM.UI.Web.Components.AppPage(); | 96 | this._appPage = new Clipperz.PM.UI.Web.Components.AppPage(); |
100 | } | 97 | } |
101 | 98 | ||
102 | return this._appPage; | 99 | return this._appPage; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //----------------------------------------------------------------------------- | 102 | //----------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'tabSidePanel': function() { | 104 | 'tabSidePanel': function() { |
108 | if (this._tabSidePanel == null) { | 105 | if (this._tabSidePanel == null) { |
109 | this._tabSidePanel = new Clipperz.PM.UI.Web.Components.TabSidePanel(); | 106 | this._tabSidePanel = new Clipperz.PM.UI.Web.Components.TabSidePanel(); |
110 | } | 107 | } |
111 | 108 | ||
112 | return this._tabSidePanel; | 109 | return this._tabSidePanel; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //----------------------------------------------------------------------------- | 112 | //----------------------------------------------------------------------------- |
116 | 113 | ||
117 | 'userInfoBox': function() { | 114 | 'userInfoBox': function() { |
118 | if (this._userInfoBox == null) { | 115 | if (this._userInfoBox == null) { |
119 | this._userInfoBox = new Clipperz.PM.UI.Web.Components.UserInfoBox(); | 116 | this._userInfoBox = new Clipperz.PM.UI.Web.Components.UserInfoBox(); |
120 | 117 | ||
121 | MochiKit.Signal.connect(this._userInfoBox, 'logout',this, 'handleLogout'); | 118 | MochiKit.Signal.connect(this._userInfoBox, 'logout',this, 'handleLogout'); |
122 | MochiKit.Signal.connect(this._userInfoBox, 'lock', this, 'handleLock'); | 119 | MochiKit.Signal.connect(this._userInfoBox, 'lock', this, 'handleLock'); |
123 | MochiKit.Signal.connect(this._userInfoBox, 'unlock',this, 'handleUnlock'); | 120 | MochiKit.Signal.connect(this._userInfoBox, 'unlock',this, 'handleUnlock'); |
124 | } | 121 | } |
125 | 122 | ||
126 | return this._userInfoBox; | 123 | return this._userInfoBox; |
127 | }, | 124 | }, |
128 | 125 | ||
129 | //----------------------------------------------------------------------------- | 126 | //----------------------------------------------------------------------------- |
130 | 127 | ||
131 | 'accountPanel': function () { | 128 | 'accountPanel': function () { |
132 | if (this._accountPanel == null) { | 129 | if (this._accountPanel == null) { |
133 | this._accountPanel = new Clipperz.PM.UI.Web.Components.AccountPanel(/*{selected:'Preferences'}*/); | 130 | this._accountPanel = new Clipperz.PM.UI.Web.Components.AccountPanel(/*{selected:'Preferences'}*/); |
134 | } | 131 | } |
135 | 132 | ||
136 | return this._accountPanel; | 133 | return this._accountPanel; |
137 | }, | 134 | }, |
138 | 135 | ||
139 | //......................................................................... | 136 | //......................................................................... |
140 | 137 | ||
141 | 'dataPanel': function () { | 138 | 'dataPanel': function () { |
142 | if (this._dataPanel == null) { | 139 | if (this._dataPanel == null) { |
143 | this._dataPanel = new Clipperz.PM.UI.Web.Components.DataPanel(); | 140 | this._dataPanel = new Clipperz.PM.UI.Web.Components.DataPanel(); |
144 | } | 141 | } |
145 | 142 | ||
146 | return this._dataPanel; | 143 | return this._dataPanel; |
147 | }, | 144 | }, |
148 | 145 | ||
149 | //......................................................................... | 146 | //......................................................................... |
150 | 147 | ||
151 | 'toolsPanel': function () { | 148 | 'toolsPanel': function () { |
152 | if (this._toolsPanel == null) { | 149 | if (this._toolsPanel == null) { |
153 | this._toolsPanel = new Clipperz.PM.UI.Web.Components.ToolsPanel(); | 150 | this._toolsPanel = new Clipperz.PM.UI.Web.Components.ToolsPanel(); |
154 | } | 151 | } |
155 | 152 | ||
156 | return this._toolsPanel; | 153 | return this._toolsPanel; |
157 | }, | 154 | }, |
158 | 155 | ||
159 | //----------------------------------------------------------------------------- | 156 | //----------------------------------------------------------------------------- |
160 | 157 | ||
161 | 'filterController': function () { | 158 | 'filterController': function () { |
162 | if (this._filterController == null) { | 159 | if (this._filterController == null) { |
163 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); | 160 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); |
164 | } | 161 | } |
165 | 162 | ||
166 | return this._filterController; | 163 | return this._filterController; |
167 | }, | 164 | }, |
168 | 165 | ||
169 | 'cardsController': function() { | 166 | 'cardsController': function() { |
170 | if (this._cardsController == null) { | 167 | if (this._cardsController == null) { |
171 | this._cardsController = new Clipperz.PM.UI.Web.Controllers.CardsController({'filterController':this._filterController}); | 168 | this._cardsController = new Clipperz.PM.UI.Web.Controllers.CardsController({'filterController':this._filterController}); |
172 | } | 169 | } |
173 | 170 | ||
174 | return this._cardsController; | 171 | return this._cardsController; |
175 | }, | 172 | }, |
176 | 173 | ||
177 | //----------------------------------------------------------------------------- | 174 | //----------------------------------------------------------------------------- |
178 | /* | 175 | /* |
179 | 'directLoginsController': function() { | 176 | 'directLoginsController': function() { |
180 | //Clipperz.log(">>> AppController.directLoginsController"); | 177 | //Clipperz.log(">>> AppController.directLoginsController"); |
181 | if (this._directLoginsController == null) { | 178 | if (this._directLoginsController == null) { |
182 | this._directLoginsController = new Clipperz.PM.UI.Web.Controllers.DirectLoginsController({'filterController':this._filterController}); | 179 | this._directLoginsController = new Clipperz.PM.UI.Web.Controllers.DirectLoginsController({'filterController':this._filterController}); |
183 | } | 180 | } |
184 | //Clipperz.log("<<< AppController.directLoginsController"); | 181 | //Clipperz.log("<<< AppController.directLoginsController"); |
185 | 182 | ||
186 | return this._directLoginsController; | 183 | return this._directLoginsController; |
187 | }, | 184 | }, |
188 | */ | 185 | */ |
189 | //----------------------------------------------------------------------------- | 186 | //----------------------------------------------------------------------------- |
190 | 187 | ||
191 | 'populateUserInfo': function() { | 188 | 'populateUserInfo': function() { |
192 | var deferredResult; | 189 | var deferredResult; |
193 | 190 | ||
194 | deferredResult = new Clipperz.Async.Deferred("AppController.populateUserInfo", {trace:false}); | 191 | deferredResult = new Clipperz.Async.Deferred("AppController.populateUserInfo", {trace:false}); |
195 | deferredResult.collectResults({ | 192 | deferredResult.collectResults({ |
196 | 'username':MochiKit.Base.methodcaller('displayName'), | 193 | 'username':MochiKit.Base.methodcaller('displayName'), |
197 | 'cardsNumber':[ | 194 | 'cardsNumber':[ |
198 | MochiKit.Base.methodcaller('getRecords'), | 195 | MochiKit.Base.methodcaller('getRecords'), |
199 | function (someResults) { return someResults.length; } | 196 | function (someResults) { return someResults.length; } |
200 | ], | 197 | ], |
201 | 'directLoginsNumber': [ | 198 | 'directLoginsNumber': [ |
202 | MochiKit.Base.methodcaller('getDirectLogins'), | 199 | MochiKit.Base.methodcaller('getDirectLogins'), |
203 | function (someResults) { return someResults.length; } | 200 | function (someResults) { return someResults.length; } |
204 | ] | 201 | ] |
205 | }) | 202 | }) |
206 | deferredResult.addMethod(this.userInfoBox(), 'updateUserDetails'); | 203 | deferredResult.addMethod(this.userInfoBox(), 'updateUserDetails'); |
207 | deferredResult.callback(this.user()); | 204 | deferredResult.callback(this.user()); |
208 | 205 | ||
209 | return deferredResult; | 206 | return deferredResult; |
210 | }, | 207 | }, |
211 | 208 | ||
212 | //----------------------------------------------------------------------------- | 209 | //----------------------------------------------------------------------------- |
213 | 210 | ||
214 | 'run': function(args) { | 211 | 'run': function(args) { |
215 | var deferredResult; | 212 | var deferredResult; |
216 | varslot; | 213 | varslot; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js index 2340aeb..effde31 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.CardDialogController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.CardDialogController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._record = args.record || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._record = args.record || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._delegate = args.delegate || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._delegate = args.delegate || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | this._referenceElement = null; | 36 | this._referenceElement = null; |
40 | this._cardDialogComponent = null; | 37 | this._cardDialogComponent = null; |
41 | 38 | ||
42 | this._fieldsReferences = {}; | 39 | this._fieldsReferences = {}; |
43 | this._directLoginReferences = {}; | 40 | this._directLoginReferences = {}; |
44 | 41 | ||
45 | this._directLoginWizardController = null; | 42 | this._directLoginWizardController = null; |
46 | this._directLoginEditingComponent = null; | 43 | this._directLoginEditingComponent = null; |
47 | this._isDirectLoginEditingComponentVisible = false; | 44 | this._isDirectLoginEditingComponentVisible = false; |
48 | 45 | ||
49 | return this; | 46 | return this; |
50 | }; | 47 | }; |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardDialogController, Object, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardDialogController, Object, { |
53 | 50 | ||
54 | 'toString': function() { | 51 | 'toString': function() { |
55 | return "Clipperz.PM.UI.Web.Controllers.CardDialogController"; | 52 | return "Clipperz.PM.UI.Web.Controllers.CardDialogController"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'record': function () { | 57 | 'record': function () { |
61 | return this._record; | 58 | return this._record; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | 'delegate': function () { | 61 | 'delegate': function () { |
65 | return this._delegate; | 62 | return this._delegate; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'fieldsReferences': function () { | 67 | 'fieldsReferences': function () { |
71 | return this._fieldsReferences; | 68 | return this._fieldsReferences; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'directLoginReferences': function () { | 71 | 'directLoginReferences': function () { |
75 | return this._directLoginReferences; | 72 | return this._directLoginReferences; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'referenceElement': function () { | 77 | 'referenceElement': function () { |
81 | return this._referenceElement; | 78 | return this._referenceElement; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | 'setReferenceElement': function (anElement) { | 81 | 'setReferenceElement': function (anElement) { |
85 | this._referenceElement = anElement; | 82 | this._referenceElement = anElement; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'cardDialogComponent': function () { | 87 | 'cardDialogComponent': function () { |
91 | if (this._cardDialogComponent == null) { | 88 | if (this._cardDialogComponent == null) { |
92 | this._cardDialogComponent = new Clipperz.PM.UI.Web.Components.CardDialogComponent(); | 89 | this._cardDialogComponent = new Clipperz.PM.UI.Web.Components.CardDialogComponent(); |
93 | 90 | ||
94 | MochiKit.Signal.connect(this._cardDialogComponent, 'cancel', this, 'handleCancel'); | 91 | MochiKit.Signal.connect(this._cardDialogComponent, 'cancel', this, 'handleCancel'); |
95 | MochiKit.Signal.connect(this._cardDialogComponent, 'save', this, 'handleSave'); | 92 | MochiKit.Signal.connect(this._cardDialogComponent, 'save', this, 'handleSave'); |
96 | 93 | ||
97 | MochiKit.Signal.connect(this._cardDialogComponent, 'addField', this, 'handleAddField'); | 94 | MochiKit.Signal.connect(this._cardDialogComponent, 'addField', this, 'handleAddField'); |
98 | MochiKit.Signal.connect(this._cardDialogComponent, 'changedValue',this, 'handleChangedValue'); | 95 | MochiKit.Signal.connect(this._cardDialogComponent, 'changedValue',this, 'handleChangedValue'); |
99 | 96 | ||
100 | MochiKit.Signal.connect(this._cardDialogComponent, 'addDirectLogin',this, 'handleAddDirectLogin'); | 97 | MochiKit.Signal.connect(this._cardDialogComponent, 'addDirectLogin',this, 'handleAddDirectLogin'); |
101 | MochiKit.Signal.connect(this._cardDialogComponent, 'keyPressed',this, 'handleCardDialogComponentKeyPressed'); | 98 | MochiKit.Signal.connect(this._cardDialogComponent, 'keyPressed',this, 'handleCardDialogComponentKeyPressed'); |
102 | } | 99 | } |
103 | 100 | ||
104 | return this._cardDialogComponent; | 101 | return this._cardDialogComponent; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //========================================================================= | 104 | //========================================================================= |
108 | 105 | ||
109 | 'directLoginWizardController': function () { | 106 | 'directLoginWizardController': function () { |
110 | if (this._directLoginWizardController == null) { | 107 | if (this._directLoginWizardController == null) { |
111 | this._directLoginWizardController = new Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController({ | 108 | this._directLoginWizardController = new Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController({ |
112 | 'cardLabel': this.cardDialogComponent().title(), | 109 | 'cardLabel': this.cardDialogComponent().title(), |
113 | 'directLoginEditingComponent': this.directLoginEditingComponent() | 110 | 'directLoginEditingComponent': this.directLoginEditingComponent() |
114 | }) | 111 | }) |
115 | 112 | ||
116 | MochiKit.Signal.connect(this._directLoginWizardController, 'exit',this, 'handleHideDirectLoginEditingComponent'); | 113 | MochiKit.Signal.connect(this._directLoginWizardController, 'exit',this, 'handleHideDirectLoginEditingComponent'); |
117 | MochiKit.Signal.connect(this._directLoginWizardController, 'done',this, 'handleCompleteDirectLoginEditingComponent'); | 114 | MochiKit.Signal.connect(this._directLoginWizardController, 'done',this, 'handleCompleteDirectLoginEditingComponent'); |
118 | } | 115 | } |
119 | 116 | ||
120 | return this._directLoginWizardController; | 117 | return this._directLoginWizardController; |
121 | }, | 118 | }, |
122 | 119 | ||
123 | //------------------------------------------------------------------------- | 120 | //------------------------------------------------------------------------- |
124 | 121 | ||
125 | 'directLoginEditingComponent': function () { | 122 | 'directLoginEditingComponent': function () { |
126 | if (this._directLoginEditingComponent == null) { | 123 | if (this._directLoginEditingComponent == null) { |
127 | this._directLoginEditingComponent = new Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent(); | 124 | this._directLoginEditingComponent = new Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent(); |
128 | 125 | ||
129 | this.cardDialogComponent().renderDirectLoginEditingComponent(this._directLoginEditingComponent); | 126 | this.cardDialogComponent().renderDirectLoginEditingComponent(this._directLoginEditingComponent); |
130 | 127 | ||
131 | // MochiKit.Signal.connect(this._directLoginEditingComponent, 'back', this, 'handleHideDirectLoginEditingComponent') | 128 | // MochiKit.Signal.connect(this._directLoginEditingComponent, 'back', this, 'handleHideDirectLoginEditingComponent') |
132 | // MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); | 129 | // MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); |
133 | // MochiKit.Signal.connect(this.__directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); | 130 | // MochiKit.Signal.connect(this.__directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); |
134 | } | 131 | } |
135 | 132 | ||
136 | return this._directLoginEditingComponent; | 133 | return this._directLoginEditingComponent; |
137 | }, | 134 | }, |
138 | 135 | ||
139 | //------------------------------------------------------------------------- | 136 | //------------------------------------------------------------------------- |
140 | 137 | ||
141 | 'isDirectLoginEditingComponentVisible': function () { | 138 | 'isDirectLoginEditingComponentVisible': function () { |
142 | return this._isDirectLoginEditingComponentVisible; | 139 | return this._isDirectLoginEditingComponentVisible; |
143 | }, | 140 | }, |
144 | 141 | ||
145 | 'setIsDirectLoginEditingComponentVisible': function (aValue) { | 142 | 'setIsDirectLoginEditingComponentVisible': function (aValue) { |
146 | this._isDirectLoginEditingComponentVisible = aValue; | 143 | this._isDirectLoginEditingComponentVisible = aValue; |
147 | }, | 144 | }, |
148 | 145 | ||
149 | //========================================================================= | 146 | //========================================================================= |
150 | 147 | ||
151 | 'run': function (anElement) { | 148 | 'run': function (anElement) { |
152 | var deferredResult; | 149 | var deferredResult; |
153 | 150 | ||
154 | this.setReferenceElement(anElement); | 151 | this.setReferenceElement(anElement); |
155 | 152 | ||
156 | deferredResult = new Clipperz.Async.Deferred("CardDialogController.run", {trace:false}); | 153 | deferredResult = new Clipperz.Async.Deferred("CardDialogController.run", {trace:false}); |
157 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':11}); | 154 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':11}); |
158 | 155 | ||
159 | deferredResult.addMethod(this.cardDialogComponent(), 'deferredShowModal', {openFromElement:this.referenceElement()}); | 156 | deferredResult.addMethod(this.cardDialogComponent(), 'deferredShowModal', {openFromElement:this.referenceElement()}); |
160 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); | 157 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); |
161 | 158 | ||
162 | deferredResult.addMethod(this.record(), 'label'); | 159 | deferredResult.addMethod(this.record(), 'label'); |
163 | deferredResult.addMethod(this.cardDialogComponent(), 'setTitle'); | 160 | deferredResult.addMethod(this.cardDialogComponent(), 'setTitle'); |
164 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); | 161 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); |
165 | 162 | ||
166 | deferredResult.addMethod(this, 'updateComponentState'); | 163 | deferredResult.addMethod(this, 'updateComponentState'); |
167 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); | 164 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress'); |
168 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'); | 165 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'); |
169 | 166 | ||
170 | deferredResult.addMethod(this.cardDialogComponent(), 'fixRendering'); | 167 | deferredResult.addMethod(this.cardDialogComponent(), 'fixRendering'); |
171 | deferredResult.addMethod(this.cardDialogComponent(), 'hideProgressMask'); | 168 | deferredResult.addMethod(this.cardDialogComponent(), 'hideProgressMask'); |
172 | 169 | ||
173 | if (this.record().isBrandNew()) { | 170 | if (this.record().isBrandNew()) { |
174 | deferredResult.addMethod(this.cardDialogComponent(), 'setHintMode', 'ON'); | 171 | deferredResult.addMethod(this.cardDialogComponent(), 'setHintMode', 'ON'); |
175 | deferredResult.addMethod(this.cardDialogComponent(), 'setFocusOnTitleField'); | 172 | deferredResult.addMethod(this.cardDialogComponent(), 'setFocusOnTitleField'); |
176 | } | 173 | } |
177 | 174 | ||
178 | deferredResult.addErrback(MochiKit.Base.method(this.cardDialogComponent(), 'showError')); | 175 | deferredResult.addErrback(MochiKit.Base.method(this.cardDialogComponent(), 'showError')); |
179 | deferredResult.callback(); | 176 | deferredResult.callback(); |
180 | 177 | ||
181 | return deferredResult; | 178 | return deferredResult; |
182 | }, | 179 | }, |
183 | 180 | ||
184 | //========================================================================= | 181 | //========================================================================= |
185 | 182 | ||
186 | 'updateComponentState': function () { | 183 | 'updateComponentState': function () { |
187 | return Clipperz.Async.callbacks("CardDialogController.updateComponentState", [ | 184 | return Clipperz.Async.callbacks("CardDialogController.updateComponentState", [ |
188 | MochiKit.Base.method(this.record(), 'hasPendingChanges'), | 185 | MochiKit.Base.method(this.record(), 'hasPendingChanges'), |
189 | MochiKit.Base.method(this.cardDialogComponent(), 'setShouldEnableSaving'), | 186 | MochiKit.Base.method(this.cardDialogComponent(), 'setShouldEnableSaving'), |
190 | 187 | ||
191 | MochiKit.Base.method(this.record(), 'label'), | 188 | MochiKit.Base.method(this.record(), 'label'), |
192 | MochiKit.Base.method(this.cardDialogComponent(), 'setTitle'), | 189 | MochiKit.Base.method(this.cardDialogComponent(), 'setTitle'), |
193 | MochiKit.Base.method(this.record(), 'notes'), | 190 | MochiKit.Base.method(this.record(), 'notes'), |
194 | MochiKit.Base.method(this.cardDialogComponent(), 'setNotes'), | 191 | MochiKit.Base.method(this.cardDialogComponent(), 'setNotes'), |
195 | 192 | ||
196 | MochiKit.Base.method(this.record(), 'fields'), | 193 | MochiKit.Base.method(this.record(), 'fields'), |
197 | MochiKit.Base.values, | 194 | MochiKit.Base.values, |
198 | MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithField')), | 195 | MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithField')), |
199 | 196 | ||
200 | MochiKit.Base.method(this.record(), 'directLogins'), | 197 | MochiKit.Base.method(this.record(), 'directLogins'), |
201 | MochiKit.Base.values, | 198 | MochiKit.Base.values, |
202 | MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithDirectLogin')), | 199 | MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithDirectLogin')), |
203 | 200 | ||
204 | MochiKit.Base.method(this.cardDialogComponent(), 'resetNewFieldInputs'), | 201 | MochiKit.Base.method(this.cardDialogComponent(), 'resetNewFieldInputs'), |
205 | MochiKit.Base.noop | 202 | MochiKit.Base.noop |
206 | ], {trace:false}); | 203 | ], {trace:false}); |
207 | }, | 204 | }, |
208 | 205 | ||
209 | //------------------------------------------------------------------------- | 206 | //------------------------------------------------------------------------- |
210 | 207 | ||
211 | 'addCardDialogComponentWithField': function (aField) { | 208 | 'addCardDialogComponentWithField': function (aField) { |
212 | varfieldComponent; | 209 | varfieldComponent; |
213 | 210 | ||
214 | fieldComponent = new Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent({reference: aField.reference()}); | 211 | fieldComponent = new Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent({reference: aField.reference()}); |
215 | MochiKit.Signal.connect(fieldComponent, 'changedValue',this, 'handleChangedValue'); | 212 | MochiKit.Signal.connect(fieldComponent, 'changedValue',this, 'handleChangedValue'); |
216 | MochiKit.Signal.connect(fieldComponent, 'performAction',this, 'handlePerformFieldAction'); | 213 | MochiKit.Signal.connect(fieldComponent, 'performAction',this, 'handlePerformFieldAction'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js index b1a34b2..f58f0b8 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js | |||
@@ -1,207 +1,204 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.CardsController = function() { | 28 | Clipperz.PM.UI.Web.Controllers.CardsController = function() { |
32 | Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments); | 29 | Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments); |
33 | 30 | ||
34 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'cardDialogComponentClosed', this, 'handleHideCard'); | 31 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'cardDialogComponentClosed', this, 'handleHideCard'); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardsController, Clipperz.PM.UI.Web.Controllers.GridController, { | 36 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardsController, Clipperz.PM.UI.Web.Controllers.GridController, { |
40 | 37 | ||
41 | 'toString': function() { | 38 | 'toString': function() { |
42 | return "Clipperz.PM.UI.Web.Controllers.CardsController"; | 39 | return "Clipperz.PM.UI.Web.Controllers.CardsController"; |
43 | }, | 40 | }, |
44 | 41 | ||
45 | 'createGrid': function () { | 42 | 'createGrid': function () { |
46 | var grid; | 43 | var grid; |
47 | 44 | ||
48 | grid = new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ | 45 | grid = new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ |
49 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ | 46 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ |
50 | 'name': 'Cards.favicon', | 47 | 'name': 'Cards.favicon', |
51 | 'selector': MochiKit.Base.methodcaller('favicon'), | 48 | 'selector': MochiKit.Base.methodcaller('favicon'), |
52 | 'cssClass': 'favicon' | 49 | 'cssClass': 'favicon' |
53 | }), | 50 | }), |
54 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 51 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
55 | 'name': 'Cards.title', | 52 | 'name': 'Cards.title', |
56 | 'selector': MochiKit.Base.methodcaller('label'), | 53 | 'selector': MochiKit.Base.methodcaller('label'), |
57 | 'label': 'title', | 54 | 'label': 'title', |
58 | 'cssClass': 'title', | 55 | 'cssClass': 'title', |
59 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 56 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
60 | 'sortable': true, | 57 | 'sortable': true, |
61 | 'sorted': 'ASCENDING', | 58 | 'sorted': 'ASCENDING', |
62 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'editCard', {objectData:anObject, element:anEvent.src()})} | 59 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'editCard', {objectData:anObject, element:anEvent.src()})} |
63 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') | 60 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') |
64 | }), | 61 | }), |
65 | new Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager({ | 62 | new Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager({ |
66 | 'name': 'Cards.directLogins', | 63 | 'name': 'Cards.directLogins', |
67 | 'selector': MochiKit.Base.methodcaller('directLoginReferences'), | 64 | 'selector': MochiKit.Base.methodcaller('directLoginReferences'), |
68 | 'label': 'direct logins', | 65 | 'label': 'direct logins', |
69 | 'cssClass': 'directLogin' | 66 | 'cssClass': 'directLogin' |
70 | }), | 67 | }), |
71 | new Clipperz.PM.UI.Web.Components.DateColumnManager({ | 68 | new Clipperz.PM.UI.Web.Components.DateColumnManager({ |
72 | 'name': 'Cards.latestUpdate', | 69 | 'name': 'Cards.latestUpdate', |
73 | 'selector': MochiKit.Base.methodcaller('updateDate'), | 70 | 'selector': MochiKit.Base.methodcaller('updateDate'), |
74 | 'label': 'latest update', | 71 | 'label': 'latest update', |
75 | 'cssClass': 'latestUpdate', | 72 | 'cssClass': 'latestUpdate', |
76 | 'format': 'd-m-Y', | 73 | 'format': 'd-m-Y', |
77 | 'comparator': MochiKit.Base.compare, | 74 | 'comparator': MochiKit.Base.compare, |
78 | 'sortable': true, | 75 | 'sortable': true, |
79 | 'sorted': 'UNSORTED' | 76 | 'sorted': 'UNSORTED' |
80 | }), | 77 | }), |
81 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ | 78 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ |
82 | 'name': 'Cards.delete', | 79 | 'name': 'Cards.delete', |
83 | 'selector': MochiKit.Base.noop, | 80 | 'selector': MochiKit.Base.noop, |
84 | 'cssClass': 'delete', | 81 | 'cssClass': 'delete', |
85 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteCard', {objectData:anObject, element:anEvent.src()})} | 82 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteCard', {objectData:anObject, element:anEvent.src()})} |
86 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteCard') | 83 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteCard') |
87 | }) | 84 | }) |
88 | ]}); | 85 | ]}); |
89 | 86 | ||
90 | grid.setComponentForSlotNamed(new Clipperz.PM.UI.Web.Components.BookmarkletComponent(), 'headerSlot'); | 87 | grid.setComponentForSlotNamed(new Clipperz.PM.UI.Web.Components.BookmarkletComponent(), 'headerSlot'); |
91 | 88 | ||
92 | return grid; | 89 | return grid; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //----------------------------------------------------------------------------- | 92 | //----------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'getRows': function () { | 94 | 'getRows': function () { |
98 | //TODO relying on user() in GridController, bad code smell :| | 95 | //TODO relying on user() in GridController, bad code smell :| |
99 | return this.user().getRecords(); | 96 | return this.user().getRecords(); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //============================================================================= | 99 | //============================================================================= |
103 | 100 | ||
104 | 'displayEmptyContent': function () { | 101 | 'displayEmptyContent': function () { |
105 | varemptyGridComponent; | 102 | varemptyGridComponent; |
106 | 103 | ||
107 | emptyGridComponent = new Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent(); | 104 | emptyGridComponent = new Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent(); |
108 | 105 | ||
109 | return Clipperz.Async.callbacks("CardsController.displayEmptyContent", [ | 106 | return Clipperz.Async.callbacks("CardsController.displayEmptyContent", [ |
110 | MochiKit.Base.method(this.grid(), 'setNoRowsGridComponent', emptyGridComponent), | 107 | MochiKit.Base.method(this.grid(), 'setNoRowsGridComponent', emptyGridComponent), |
111 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displayEmptyContent, this) | 108 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displayEmptyContent, this) |
112 | ], {trace:false}); | 109 | ], {trace:false}); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'displaySelectedRows': function (aFilter) { | 112 | 'displaySelectedRows': function (aFilter) { |
116 | this.columnManagerWithName('Cards.directLogins').hideDirectLoginListPopup(); | 113 | this.columnManagerWithName('Cards.directLogins').hideDirectLoginListPopup(); |
117 | 114 | ||
118 | return Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displaySelectedRows.apply(this, arguments); | 115 | return Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displaySelectedRows.apply(this, arguments); |
119 | }, | 116 | }, |
120 | 117 | ||
121 | //============================================================================= | 118 | //============================================================================= |
122 | 119 | ||
123 | 'handleShowCard': function (anObject, anEvent) { | 120 | 'handleShowCard': function (anObject, anEvent) { |
124 | var cardDialogController; | 121 | var cardDialogController; |
125 | 122 | ||
126 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject, delegate:this}); | 123 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject, delegate:this}); |
127 | this.grid().selectRow(anObject); | 124 | this.grid().selectRow(anObject); |
128 | 125 | ||
129 | cardDialogController.run(anEvent.src()); | 126 | cardDialogController.run(anEvent.src()); |
130 | }, | 127 | }, |
131 | 128 | ||
132 | //......................................................................... | 129 | //......................................................................... |
133 | 130 | ||
134 | 'handleHideCard': function () { | 131 | 'handleHideCard': function () { |
135 | this.focus(); | 132 | this.focus(); |
136 | }, | 133 | }, |
137 | 134 | ||
138 | //----------------------------------------------------------------------------- | 135 | //----------------------------------------------------------------------------- |
139 | 136 | ||
140 | 'addCard': function (aSourceElement) { | 137 | 'addCard': function (aSourceElement) { |
141 | return Clipperz.Async.callbacks("CardsController.addCard", [ | 138 | return Clipperz.Async.callbacks("CardsController.addCard", [ |
142 | Clipperz.Async.collectResults("CardsController.addCard <inner results>", { | 139 | Clipperz.Async.collectResults("CardsController.addCard <inner results>", { |
143 | 'record': MochiKit.Base.method(this.user(), 'createNewRecord'), | 140 | 'record': MochiKit.Base.method(this.user(), 'createNewRecord'), |
144 | 'delegate':MochiKit.Base.partial(MochiKit.Async.succeed, this) | 141 | 'delegate':MochiKit.Base.partial(MochiKit.Async.succeed, this) |
145 | }, {trace:false}), | 142 | }, {trace:false}), |
146 | function (someParameters) { | 143 | function (someParameters) { |
147 | return new Clipperz.PM.UI.Web.Controllers.CardDialogController(someParameters); | 144 | return new Clipperz.PM.UI.Web.Controllers.CardDialogController(someParameters); |
148 | }, | 145 | }, |
149 | MochiKit.Base.methodcaller('run', aSourceElement) | 146 | MochiKit.Base.methodcaller('run', aSourceElement) |
150 | ], {trace:false}); | 147 | ], {trace:false}); |
151 | }, | 148 | }, |
152 | 149 | ||
153 | //----------------------------------------------------------------------------- | 150 | //----------------------------------------------------------------------------- |
154 | 151 | ||
155 | 'handleDeleteCard': function (anObject, anEvent) { | 152 | 'handleDeleteCard': function (anObject, anEvent) { |
156 | var deferredResult; | 153 | var deferredResult; |
157 | var confirmationDialog; | 154 | var confirmationDialog; |
158 | 155 | ||
159 | // confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ | 156 | // confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ |
160 | confirmationDialog = new Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar({ | 157 | confirmationDialog = new Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar({ |
161 | 'title':"Delete Card", | 158 | 'title':"Delete Card", |
162 | 'text': "Do you want to delete …", | 159 | 'text': "Do you want to delete …", |
163 | 'type': 'ALERT', | 160 | 'type': 'ALERT', |
164 | 'buttons': [ | 161 | 'buttons': [ |
165 | {text:"Cancel",result:'CANCEL'}, | 162 | {text:"Cancel",result:'CANCEL'}, |
166 | {text:"Delete", result:'OK', isDefault:true} | 163 | {text:"Delete", result:'OK', isDefault:true} |
167 | ], | 164 | ], |
168 | 'canCancelWhileProcessing':false | 165 | 'canCancelWhileProcessing':false |
169 | }); | 166 | }); |
170 | 167 | ||
171 | deferredResult = new Clipperz.Async.Deferred("AppController.handleDeleteCard", {trace:false}); | 168 | deferredResult = new Clipperz.Async.Deferred("AppController.handleDeleteCard", {trace:false}); |
172 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':5}), | 169 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':5}), |
173 | deferredResult.addMethod(this.grid(), 'selectRow', anObject); | 170 | deferredResult.addMethod(this.grid(), 'selectRow', anObject); |
174 | deferredResult.addMethod(confirmationDialog, 'deferredShowModal', { | 171 | deferredResult.addMethod(confirmationDialog, 'deferredShowModal', { |
175 | 'openFromElement': anEvent.src(), | 172 | 'openFromElement': anEvent.src(), |
176 | 'onOkCloseToElement': null, //MochiKit.DOM.currentDocument().body, | 173 | 'onOkCloseToElement': null, //MochiKit.DOM.currentDocument().body, |
177 | 'onCancelCloseToElement':anEvent.src() | 174 | 'onCancelCloseToElement':anEvent.src() |
178 | }); | 175 | }); |
179 | // deferredResult.addCallback(function () { Clipperz.log("DELETE: " + anObject.toString(), anObject); }); | 176 | // deferredResult.addCallback(function () { Clipperz.log("DELETE: " + anObject.toString(), anObject); }); |
180 | deferredResult.addMethod(this.user(), 'deleteRecord', anObject); | 177 | deferredResult.addMethod(this.user(), 'deleteRecord', anObject); |
181 | deferredResult.addBothPass(MochiKit.Base.method(this.grid(), 'unselectRow', anObject)); | 178 | deferredResult.addBothPass(MochiKit.Base.method(this.grid(), 'unselectRow', anObject)); |
182 | deferredResult.addMethod(this, 'saveChanges'); | 179 | deferredResult.addMethod(this, 'saveChanges'); |
183 | deferredResult.addMethod(confirmationDialog, 'deferredDone'); | 180 | deferredResult.addMethod(confirmationDialog, 'deferredDone'); |
184 | deferredResult.addErrbackPass(function (anError) { | 181 | deferredResult.addErrbackPass(function (anError) { |
185 | var result; | 182 | var result; |
186 | 183 | ||
187 | if (! (anError instanceof MochiKit.Async.CancelledError)) { | 184 | if (! (anError instanceof MochiKit.Async.CancelledError)) { |
188 | result = confirmationDialog.deferredError({ | 185 | result = confirmationDialog.deferredError({ |
189 | 'type': 'ALERT', | 186 | 'type': 'ALERT', |
190 | 'title':"Error", | 187 | 'title':"Error", |
191 | 'text': Clipperz.PM.Strings.errorDescriptionForException(anError), | 188 | 'text': Clipperz.PM.Strings.errorDescriptionForException(anError), |
192 | 'buttons':[{text:"Close", result:'CANCEL', isDefault:true}] | 189 | 'buttons':[{text:"Close", result:'CANCEL', isDefault:true}] |
193 | }) | 190 | }) |
194 | } else { | 191 | } else { |
195 | result = anError; | 192 | result = anError; |
196 | } | 193 | } |
197 | 194 | ||
198 | return result; | 195 | return result; |
199 | }); | 196 | }); |
200 | deferredResult.callback(); | 197 | deferredResult.callback(); |
201 | 198 | ||
202 | return deferredResult; | 199 | return deferredResult; |
203 | }, | 200 | }, |
204 | 201 | ||
205 | //============================================================================= | 202 | //============================================================================= |
206 | __syntaxFix__: "syntax fix" | 203 | __syntaxFix__: "syntax fix" |
207 | }); | 204 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js index 38fdc08..c025a51 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) { |
32 | this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter'); | 30 | this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter'); |
34 | 31 | ||
35 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); | 32 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); |
36 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'moveForward',this, 'handleMoveForward'); | 33 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'moveForward',this, 'handleMoveForward'); |
37 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); | 34 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); |
38 | 35 | ||
39 | this._directLogin = null; | 36 | this._directLogin = null; |
40 | this._directLoginHasJustBeenAdded = false; | 37 | this._directLoginHasJustBeenAdded = false; |
41 | 38 | ||
42 | this._rulerComponent = null; | 39 | this._rulerComponent = null; |
43 | 40 | ||
44 | this._steps = null; | 41 | this._steps = null; |
45 | this._currentStepIndex = 0; | 42 | this._currentStepIndex = 0; |
46 | this._isNextEnabled = false; | 43 | this._isNextEnabled = false; |
47 | 44 | ||
48 | this._recordFields = null; | 45 | this._recordFields = null; |
49 | this._originalBindings = null; | 46 | this._originalBindings = null; |
50 | 47 | ||
51 | this._bindingComponents = []; | 48 | this._bindingComponents = []; |
52 | this._formValueComponents = []; | 49 | this._formValueComponents = []; |
53 | 50 | ||
54 | return this; | 51 | return this; |
55 | } | 52 | } |
56 | 53 | ||
57 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.prototype, { | 54 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.prototype, { |
58 | 55 | ||
59 | 'toString': function() { | 56 | 'toString': function() { |
60 | return "Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController"; | 57 | return "Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController"; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'directLogin': function () { | 62 | 'directLogin': function () { |
66 | return this._directLogin; | 63 | return this._directLogin; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'directLoginHasJustBeenAdded': function () { | 68 | 'directLoginHasJustBeenAdded': function () { |
72 | return this._directLoginHasJustBeenAdded; | 69 | return this._directLoginHasJustBeenAdded; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setDirectLoginHasJustBeenAdded': function (aValue) { | 72 | 'setDirectLoginHasJustBeenAdded': function (aValue) { |
76 | this._directLoginHasJustBeenAdded = aValue; | 73 | this._directLoginHasJustBeenAdded = aValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'directLoginEditingComponent': function () { | 78 | 'directLoginEditingComponent': function () { |
82 | return this._directLoginEditingComponent; | 79 | return this._directLoginEditingComponent; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //============================================================================= | 82 | //============================================================================= |
86 | 83 | ||
87 | 'cardLabel': function () { | 84 | 'cardLabel': function () { |
88 | return this._cardLabel; | 85 | return this._cardLabel; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //============================================================================= | 88 | //============================================================================= |
92 | 89 | ||
93 | 'resetCurrentStepIndex': function () { | 90 | 'resetCurrentStepIndex': function () { |
94 | this._currentStepIndex = 0; | 91 | this._currentStepIndex = 0; |
95 | this.rulerComponent().resetStatus(); | 92 | this.rulerComponent().resetStatus(); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //----------------------------------------------------------------------------- | 95 | //----------------------------------------------------------------------------- |
99 | 96 | ||
100 | 'enableNext': function (aValue) { | 97 | 'enableNext': function (aValue) { |
101 | this.rulerComponent().enableNext(aValue); | 98 | this.rulerComponent().enableNext(aValue); |
102 | this._isNextEnabled = aValue; | 99 | this._isNextEnabled = aValue; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'isNextEnabled': function () { | 102 | 'isNextEnabled': function () { |
106 | return this._isNextEnabled; | 103 | return this._isNextEnabled; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //----------------------------------------------------------------------------- | 106 | //----------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'enablePrevious': function (aValue) { | 108 | 'enablePrevious': function (aValue) { |
112 | this.rulerComponent().enablePrevious(aValue); | 109 | this.rulerComponent().enablePrevious(aValue); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //============================================================================= | 112 | //============================================================================= |
116 | 113 | ||
117 | 'bindingComponents': function () { | 114 | 'bindingComponents': function () { |
118 | return this._bindingComponents; | 115 | return this._bindingComponents; |
119 | }, | 116 | }, |
120 | 117 | ||
121 | 'resetBindingComponents': function () { | 118 | 'resetBindingComponents': function () { |
122 | this.directLoginEditingComponent().clearAllBindingsComponents(); | 119 | this.directLoginEditingComponent().clearAllBindingsComponents(); |
123 | this._bindingComponents = []; | 120 | this._bindingComponents = []; |
124 | }, | 121 | }, |
125 | 122 | ||
126 | //============================================================================= | 123 | //============================================================================= |
127 | 124 | ||
128 | 'formValueComponents': function () { | 125 | 'formValueComponents': function () { |
129 | return this._formValueComponents; | 126 | return this._formValueComponents; |
130 | }, | 127 | }, |
131 | 128 | ||
132 | 'resetFormValueComponents': function () { | 129 | 'resetFormValueComponents': function () { |
133 | this.directLoginEditingComponent().clearAllFormValueComponents(); | 130 | this.directLoginEditingComponent().clearAllFormValueComponents(); |
134 | this._formValueComponents = []; | 131 | this._formValueComponents = []; |
135 | }, | 132 | }, |
136 | 133 | ||
137 | //============================================================================= | 134 | //============================================================================= |
138 | 135 | ||
139 | 'recordFields': function () { | 136 | 'recordFields': function () { |
140 | return this._recordFields; | 137 | return this._recordFields; |
141 | }, | 138 | }, |
142 | 139 | ||
143 | 'setRecordFields': function (aValue) { | 140 | 'setRecordFields': function (aValue) { |
144 | this._recordFields = aValue; | 141 | this._recordFields = aValue; |
145 | }, | 142 | }, |
146 | 143 | ||
147 | 'recordFieldWithReference': function (aReference) { | 144 | 'recordFieldWithReference': function (aReference) { |
148 | var matchingValues; | 145 | var matchingValues; |
149 | var result; | 146 | var result; |
150 | 147 | ||
151 | matchingValues = MochiKit.Base.filter(function (aField) { return aField['reference'] == aReference; }, this.recordFields()); | 148 | matchingValues = MochiKit.Base.filter(function (aField) { return aField['reference'] == aReference; }, this.recordFields()); |
152 | 149 | ||
153 | if (matchingValues.length == 0) { | 150 | if (matchingValues.length == 0) { |
154 | result = null; | 151 | result = null; |
155 | } else { | 152 | } else { |
156 | result = matchingValues[0]; | 153 | result = matchingValues[0]; |
157 | } | 154 | } |
158 | 155 | ||
159 | return result; | 156 | return result; |
160 | }, | 157 | }, |
161 | 158 | ||
162 | //----------------------------------------------------------------------------- | 159 | //----------------------------------------------------------------------------- |
163 | 160 | ||
164 | 'originalBindings': function () { | 161 | 'originalBindings': function () { |
165 | return this._originalBindings; | 162 | return this._originalBindings; |
166 | }, | 163 | }, |
167 | 164 | ||
168 | 'setOriginalBindings': function (aValue) { | 165 | 'setOriginalBindings': function (aValue) { |
169 | //console.log("BINDINGS", aValue); | 166 | //console.log("BINDINGS", aValue); |
170 | this._originalBindings = aValue; | 167 | this._originalBindings = aValue; |
171 | }, | 168 | }, |
172 | 169 | ||
173 | //============================================================================= | 170 | //============================================================================= |
174 | 171 | ||
175 | 'rulerComponent': function () { | 172 | 'rulerComponent': function () { |
176 | if (this._rulerComponent == null) { | 173 | if (this._rulerComponent == null) { |
177 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ | 174 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ |
178 | translationContext:'Wizards.DirectLoginWizard' | 175 | translationContext:'Wizards.DirectLoginWizard' |
179 | }); | 176 | }); |
180 | this._rulerComponent.render(); | 177 | this._rulerComponent.render(); |
181 | 178 | ||
182 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); | 179 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); |
183 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); | 180 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); |
184 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); | 181 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); |
185 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); | 182 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); |
186 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); | 183 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); |
187 | } | 184 | } |
188 | 185 | ||
189 | return this._rulerComponent; | 186 | return this._rulerComponent; |
190 | }, | 187 | }, |
191 | 188 | ||
192 | //----------------------------------------------------------------------------- | 189 | //----------------------------------------------------------------------------- |
193 | 190 | ||
194 | 'showRuler': function (someSteps) { | 191 | 'showRuler': function (someSteps) { |
195 | var rulerElement; | 192 | var rulerElement; |
196 | 193 | ||
197 | this.setSteps(someSteps); | 194 | this.setSteps(someSteps); |
198 | 195 | ||
199 | rulerElement = this.rulerComponent().element(); | 196 | rulerElement = this.rulerComponent().element(); |
200 | this.directLoginEditingComponent().disableAllPanels(); | 197 | this.directLoginEditingComponent().disableAllPanels(); |
201 | 198 | ||
202 | MochiKit.Style.showElement(rulerElement); | 199 | MochiKit.Style.showElement(rulerElement); |
203 | MochiKit.Style.setElementPosition(rulerElement, {x:-1000, y:this.directLoginEditingComponent().bottomMargin()}); | 200 | MochiKit.Style.setElementPosition(rulerElement, {x:-1000, y:this.directLoginEditingComponent().bottomMargin()}); |
204 | new MochiKit.Visual.Move(rulerElement, { | 201 | new MochiKit.Visual.Move(rulerElement, { |
205 | x:0, y:this.directLoginEditingComponent().bottomMargin(), | 202 | x:0, y:this.directLoginEditingComponent().bottomMargin(), |
206 | mode:'absolute', | 203 | mode:'absolute', |
207 | duration:1, | 204 | duration:1, |
208 | afterFinish:MochiKit.Base.method(this, 'handleCursorMoved') | 205 | afterFinish:MochiKit.Base.method(this, 'handleCursorMoved') |
209 | }); | 206 | }); |
210 | }, | 207 | }, |
211 | 208 | ||
212 | 'fixRulerRendering': function (aValue) { | 209 | 'fixRulerRendering': function (aValue) { |
213 | this.rulerComponent().setDisplayMode(aValue); | 210 | this.rulerComponent().setDisplayMode(aValue); |
214 | }, | 211 | }, |
215 | 212 | ||
216 | //----------------------------------------------------------------------------- | 213 | //----------------------------------------------------------------------------- |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js index 28401a2..6ca3be4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js | |||
@@ -1,145 +1,142 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* | 26 | /* |
30 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 27 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
31 | 28 | ||
32 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() { | 29 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() { |
33 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments); | 30 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments); |
34 | 31 | ||
35 | return this; | 32 | return this; |
36 | }; | 33 | }; |
37 | 34 | ||
38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.DirectLoginsController, Clipperz.PM.UI.Web.Controllers.GridController, { | 35 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.DirectLoginsController, Clipperz.PM.UI.Web.Controllers.GridController, { |
39 | 36 | ||
40 | 'createGrid': function () { | 37 | 'createGrid': function () { |
41 | return new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ | 38 | return new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ |
42 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ | 39 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ |
43 | 'name': 'DirectLogins.favicon', | 40 | 'name': 'DirectLogins.favicon', |
44 | 'selector': MochiKit.Base.methodcaller('favicon'), | 41 | 'selector': MochiKit.Base.methodcaller('favicon'), |
45 | 'cssClass': 'favicon' | 42 | 'cssClass': 'favicon' |
46 | }), | 43 | }), |
47 | // new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 44 | // new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
48 | new Clipperz.PM.UI.Web.Components.DirectLoginColumnManager({ | 45 | new Clipperz.PM.UI.Web.Components.DirectLoginColumnManager({ |
49 | 'name': 'DirectLogins.title', | 46 | 'name': 'DirectLogins.title', |
50 | 'selector': MochiKit.Base.methodcaller('label'), | 47 | 'selector': MochiKit.Base.methodcaller('label'), |
51 | 'label': 'title', | 48 | 'label': 'title', |
52 | 'cssClass': 'title', | 49 | 'cssClass': 'title', |
53 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 50 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
54 | 'sortable': true, | 51 | 'sortable': true, |
55 | 'sorted': 'ASCENDING', | 52 | 'sorted': 'ASCENDING', |
56 | 'actionMethod': MochiKit.Base.methodcaller('runDirectLogin') | 53 | 'actionMethod': MochiKit.Base.methodcaller('runDirectLogin') |
57 | }), | 54 | }), |
58 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager | 55 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager |
59 | // 'label':'strength', | 56 | // 'label':'strength', |
60 | // 'cssClass':'title', | 57 | // 'cssClass':'title', |
61 | // 'selector': MochiKit.Base.methodcaller('label') //should be 'strength' or a strenght evaluation function | 58 | // 'selector': MochiKit.Base.methodcaller('label') //should be 'strength' or a strenght evaluation function |
62 | // }), | 59 | // }), |
63 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 60 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
64 | 'name': 'DirectLogins.cardTitle', | 61 | 'name': 'DirectLogins.cardTitle', |
65 | 'selector': MochiKit.Base.compose(MochiKit.Base.methodcaller('label'), MochiKit.Base.methodcaller('record')), | 62 | 'selector': MochiKit.Base.compose(MochiKit.Base.methodcaller('label'), MochiKit.Base.methodcaller('record')), |
66 | 'label': 'card', | 63 | 'label': 'card', |
67 | 'cssClass': 'cardTitle', | 64 | 'cssClass': 'cardTitle', |
68 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 65 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
69 | 'sortable': true, | 66 | 'sortable': true, |
70 | 'sorted': 'UNSORTED', | 67 | 'sorted': 'UNSORTED', |
71 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') | 68 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') |
72 | }), | 69 | }), |
73 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager | 70 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager |
74 | // 'label':'last access', | 71 | // 'label':'last access', |
75 | // 'cssClass':'title', | 72 | // 'cssClass':'title', |
76 | // 'selector': MochiKit.Base.methodcaller('label') | 73 | // 'selector': MochiKit.Base.methodcaller('label') |
77 | // // 'sortable': true, | 74 | // // 'sortable': true, |
78 | // // 'sorted': 'UNSORTED' | 75 | // // 'sorted': 'UNSORTED' |
79 | // }), | 76 | // }), |
80 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ | 77 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ |
81 | // 'label':'commands', | 78 | // 'label':'commands', |
82 | // 'cssClass':'title', | 79 | // 'cssClass':'title', |
83 | // 'selector': MochiKit.Base.methodcaller('label'), //should be a function for commands display | 80 | // 'selector': MochiKit.Base.methodcaller('label'), //should be a function for commands display |
84 | // }), | 81 | // }), |
85 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ | 82 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ |
86 | 'name': 'DirectLogins.delete', | 83 | 'name': 'DirectLogins.delete', |
87 | 'selector': MochiKit.Base.noop, | 84 | 'selector': MochiKit.Base.noop, |
88 | 'cssClass': 'delete', | 85 | 'cssClass': 'delete', |
89 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteDirectLogin', {objectData:anObject, element:anEvent.src()})} | 86 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteDirectLogin', {objectData:anObject, element:anEvent.src()})} |
90 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteDirectLogin') | 87 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteDirectLogin') |
91 | }) | 88 | }) |
92 | ]}); | 89 | ]}); |
93 | 90 | ||
94 | }, | 91 | }, |
95 | 92 | ||
96 | //----------------------------------------------------------------------------- | 93 | //----------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'getRows': function () { | 95 | 'getRows': function () { |
99 | //TODO: relying on user() in GridController, bad code smell :| | 96 | //TODO: relying on user() in GridController, bad code smell :| |
100 | return this.user().getDirectLogins(); | 97 | return this.user().getDirectLogins(); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //----------------------------------------------------------------------------- | 100 | //----------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'handleShowCard': function (anObject, anEvent) { | 102 | 'handleShowCard': function (anObject, anEvent) { |
106 | var cardDialogController; | 103 | var cardDialogController; |
107 | 104 | ||
108 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject.record()}) | 105 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject.record()}) |
109 | cardDialogController.run(anEvent.src()); | 106 | cardDialogController.run(anEvent.src()); |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //----------------------------------------------------------------------------- | 109 | //----------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'handleDeleteDirectLogin': function (anObject, anEvent) { | 111 | 'handleDeleteDirectLogin': function (anObject, anEvent) { |
115 | var deferredResult; | 112 | var deferredResult; |
116 | var confirmationDialog; | 113 | var confirmationDialog; |
117 | 114 | ||
118 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ | 115 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ |
119 | title:"Delete DirectLogin", | 116 | title:"Delete DirectLogin", |
120 | text:"Do you want to delete …", | 117 | text:"Do you want to delete …", |
121 | type:'ALERT', | 118 | type:'ALERT', |
122 | buttons: [ | 119 | buttons: [ |
123 | {text:"Cancel",result:'CANCEL', isDefault:true}, | 120 | {text:"Cancel",result:'CANCEL', isDefault:true}, |
124 | {text:"Delete", result:'OK'} | 121 | {text:"Delete", result:'OK'} |
125 | ] | 122 | ] |
126 | }); | 123 | }); |
127 | 124 | ||
128 | deferredResult = new Clipperz.Async.Deferred("AppController.handleDeleteCard", {trace:false}); | 125 | deferredResult = new Clipperz.Async.Deferred("AppController.handleDeleteCard", {trace:false}); |
129 | // deferredResult = confirmationDialog.deferredShow({openFromElement:anEvent.src(), onOkCloseToElement:MochiKit.DOM.currentDocument().body, onCancelCloseToElement:anEvent.src()}); | 126 | // deferredResult = confirmationDialog.deferredShow({openFromElement:anEvent.src(), onOkCloseToElement:MochiKit.DOM.currentDocument().body, onCancelCloseToElement:anEvent.src()}); |
130 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { | 127 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { |
131 | 'openFromElement': anEvent.src(), | 128 | 'openFromElement': anEvent.src(), |
132 | 'onOkCloseToElement': null, //MochiKit.DOM.currentDocument().body, | 129 | 'onOkCloseToElement': null, //MochiKit.DOM.currentDocument().body, |
133 | 'onCancelCloseToElement':anEvent.src() | 130 | 'onCancelCloseToElement':anEvent.src() |
134 | }); | 131 | }); |
135 | deferredResult.addCallback(function () { Clipperz.log("DELETE: " + anObject.toString(), anObject); }); | 132 | deferredResult.addCallback(function () { Clipperz.log("DELETE: " + anObject.toString(), anObject); }); |
136 | deferredResult.addErrbackPass(function () { Clipperz.log("skip deletion: " + anObject.toString(), anObject); }); | 133 | deferredResult.addErrbackPass(function () { Clipperz.log("skip deletion: " + anObject.toString(), anObject); }); |
137 | deferredResult.callback(); | 134 | deferredResult.callback(); |
138 | 135 | ||
139 | return deferredResult; | 136 | return deferredResult; |
140 | }, | 137 | }, |
141 | 138 | ||
142 | //----------------------------------------------------------------------------- | 139 | //----------------------------------------------------------------------------- |
143 | __syntaxFix__: "syntax fix" | 140 | __syntaxFix__: "syntax fix" |
144 | }); | 141 | }); |
145 | */ \ No newline at end of file | 142 | */ \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js index 13e02bc..bfc093a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js | |||
@@ -1,158 +1,155 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.FilterController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.FilterController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.FilterController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.FilterController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._filterElements = []; | 33 | this._filterElements = []; |
37 | this._filter = ""; | 34 | this._filter = ""; |
38 | 35 | ||
39 | this._pendingSearchClicks = 0; | 36 | this._pendingSearchClicks = 0; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | }; | 39 | }; |
43 | 40 | ||
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.FilterController, Object, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.FilterController, Object, { |
46 | 43 | ||
47 | //----------------------------------------------------------------------------- | 44 | //----------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'getFilter': function () { | 46 | 'getFilter': function () { |
50 | return this._filter; | 47 | return this._filter; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | '_setFilter': function (aFilterElement, aFilter) { | 50 | '_setFilter': function (aFilterElement, aFilter) { |
54 | if (aFilter != this._filter) { | 51 | if (aFilter != this._filter) { |
55 | this._filter = aFilter; | 52 | this._filter = aFilter; |
56 | MochiKit.Signal.signal(this, 'filterUpdated', aFilter); | 53 | MochiKit.Signal.signal(this, 'filterUpdated', aFilter); |
57 | this.updateFilterElements(aFilterElement, aFilter); | 54 | this.updateFilterElements(aFilterElement, aFilter); |
58 | } | 55 | } |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'setFilter': function (aFilter) { | 58 | 'setFilter': function (aFilter) { |
62 | this._setFilter(null, aFilter); | 59 | this._setFilter(null, aFilter); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'filterElements': function () { | 64 | 'filterElements': function () { |
68 | return this._filterElements; | 65 | return this._filterElements; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'registerFilterElement': function (aFilterElement) { | 68 | 'registerFilterElement': function (aFilterElement) { |
72 | //Clipperz.log("=== FilterController.registerFilterElement", aFilterElement); | 69 | //Clipperz.log("=== FilterController.registerFilterElement", aFilterElement); |
73 | this._filterElements.push(aFilterElement); | 70 | this._filterElements.push(aFilterElement); |
74 | MochiKit.Signal.connect(aFilterElement, 'onkeydown', this, 'searchClickHandler'); | 71 | MochiKit.Signal.connect(aFilterElement, 'onkeydown', this, 'searchClickHandler'); |
75 | MochiKit.Signal.connect(aFilterElement, 'onfocus', this, 'searchClickHandler'); | 72 | MochiKit.Signal.connect(aFilterElement, 'onfocus', this, 'searchClickHandler'); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'removeFilterElement': function (aFilterElement) { | 75 | 'removeFilterElement': function (aFilterElement) { |
79 | var i; | 76 | var i; |
80 | var filterElements; | 77 | var filterElements; |
81 | for (i=0; i < filterElements; i++) { | 78 | for (i=0; i < filterElements; i++) { |
82 | if (filterElements[i] == aFilterElement); | 79 | if (filterElements[i] == aFilterElement); |
83 | filterElements.splice(i, 1); | 80 | filterElements.splice(i, 1); |
84 | // TODO unregister/disconnect filterElement ??MochiKit.Signal.disconnect(this.grid().filterElement(), 'updateFilter', this.filterController(), 'handleUpdateFilter'); | 81 | // TODO unregister/disconnect filterElement ??MochiKit.Signal.disconnect(this.grid().filterElement(), 'updateFilter', this.filterController(), 'handleUpdateFilter'); |
85 | } | 82 | } |
86 | }, | 83 | }, |
87 | 84 | ||
88 | 'updateFilterElements': function (aSourceElement, aFilterString) { | 85 | 'updateFilterElements': function (aSourceElement, aFilterString) { |
89 | MochiKit.Iter.forEach(this.filterElements(), | 86 | MochiKit.Iter.forEach(this.filterElements(), |
90 | function (aFilterElement) { | 87 | function (aFilterElement) { |
91 | if (aFilterElement != aSourceElement) { | 88 | if (aFilterElement != aSourceElement) { |
92 | aFilterElement.value = aFilterString; | 89 | aFilterElement.value = aFilterString; |
93 | } | 90 | } |
94 | } | 91 | } |
95 | ); | 92 | ); |
96 | 93 | ||
97 | if (aSourceElement != null) { | 94 | if (aSourceElement != null) { |
98 | aSourceElement.focus(); | 95 | aSourceElement.focus(); |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //----------------------------------------------------------------------------- | 99 | //----------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'run': function () { | 101 | 'run': function () { |
105 | //Clipperz.log("=== FilterController.run"); | 102 | //Clipperz.log("=== FilterController.run"); |
106 | }, | 103 | }, |
107 | 104 | ||
108 | //----------------------------------------------------------------------------- | 105 | //----------------------------------------------------------------------------- |
109 | 106 | ||
110 | 'pendingSearchClicks': function () { | 107 | 'pendingSearchClicks': function () { |
111 | return this._pendingSearchClicks; | 108 | return this._pendingSearchClicks; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | 'incrementPendingSearchClicks': function () { | 111 | 'incrementPendingSearchClicks': function () { |
115 | this._pendingSearchClicks++; | 112 | this._pendingSearchClicks++; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'decrementPendingSearchClicks': function () { | 115 | 'decrementPendingSearchClicks': function () { |
119 | this._pendingSearchClicks--; | 116 | this._pendingSearchClicks--; |
120 | }, | 117 | }, |
121 | 118 | ||
122 | //----------------------------------------------------------------------------- | 119 | //----------------------------------------------------------------------------- |
123 | 120 | ||
124 | 'searchClickHandler': function (anEvent) { | 121 | 'searchClickHandler': function (anEvent) { |
125 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { | 122 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { |
126 | anEvent.preventDefault(); | 123 | anEvent.preventDefault(); |
127 | } else { | 124 | } else { |
128 | var value; | 125 | var value; |
129 | 126 | ||
130 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { | 127 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { |
131 | value = "" | 128 | value = "" |
132 | } else if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ARROW_UP')) { | 129 | } else if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ARROW_UP')) { |
133 | } else if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ARROW_DOWN')) { | 130 | } else if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ARROW_DOWN')) { |
134 | } else { | 131 | } else { |
135 | value = null; | 132 | value = null; |
136 | } | 133 | } |
137 | 134 | ||
138 | this.incrementPendingSearchClicks(); | 135 | this.incrementPendingSearchClicks(); |
139 | MochiKit.Async.callLater(0.1, MochiKit.Base.method(this, "searchClickDeferredHandler", anEvent.src(), value)); | 136 | MochiKit.Async.callLater(0.1, MochiKit.Base.method(this, "searchClickDeferredHandler", anEvent.src(), value)); |
140 | } | 137 | } |
141 | }, | 138 | }, |
142 | 139 | ||
143 | //......................................................................... | 140 | //......................................................................... |
144 | 141 | ||
145 | 'searchClickDeferredHandler': function (aFilterElement, aValue) { | 142 | 'searchClickDeferredHandler': function (aFilterElement, aValue) { |
146 | if (aValue != null) { | 143 | if (aValue != null) { |
147 | aFilterElement.value = aValue; | 144 | aFilterElement.value = aValue; |
148 | } | 145 | } |
149 | 146 | ||
150 | this.decrementPendingSearchClicks(); | 147 | this.decrementPendingSearchClicks(); |
151 | if (this.pendingSearchClicks()==0) { | 148 | if (this.pendingSearchClicks()==0) { |
152 | this._setFilter(aFilterElement, aFilterElement.value); | 149 | this._setFilter(aFilterElement, aFilterElement.value); |
153 | } | 150 | } |
154 | }, | 151 | }, |
155 | 152 | ||
156 | //----------------------------------------------------------------------------- | 153 | //----------------------------------------------------------------------------- |
157 | 'syntaxFix': 'syntax fix' | 154 | 'syntaxFix': 'syntax fix' |
158 | }); \ No newline at end of file | 155 | }); \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js index 740a091..8bb3016 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.GridController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.GridController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.GridController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.GridController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._grid = null; | 33 | this._grid = null; |
37 | this._user = null; | 34 | this._user = null; |
38 | this._sortedColumnManager = null; | 35 | this._sortedColumnManager = null; |
39 | this._cachedObjects = null; | 36 | this._cachedObjects = null; |
40 | this._filterController = args.filterController || null; | 37 | this._filterController = args.filterController || null; |
41 | 38 | ||
42 | this._deferredDisplaySelectedRowsInvocation = null; | 39 | this._deferredDisplaySelectedRowsInvocation = null; |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | }; | 42 | }; |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.GridController, Object, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.GridController, Object, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "Clipperz.PM.UI.Web.Controllers.GridController"; | 47 | return "Clipperz.PM.UI.Web.Controllers.GridController"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //----------------------------------------------------------------------------- | 50 | //----------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'createGrid': function () { | 52 | 'createGrid': function () { |
56 | throw Clipperz.Base.exception.AbstractMethod; | 53 | throw Clipperz.Base.exception.AbstractMethod; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | 'setupWithGrid': function (aGrid) { | 56 | 'setupWithGrid': function (aGrid) { |
60 | this._grid = aGrid; | 57 | this._grid = aGrid; |
61 | 58 | ||
62 | if (this._grid != null) { | 59 | if (this._grid != null) { |
63 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 60 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
64 | if (aColumnManager.isSortable()) { | 61 | if (aColumnManager.isSortable()) { |
65 | if (aColumnManager.isSorted()) { | 62 | if (aColumnManager.isSorted()) { |
66 | this.setSortedColumnManager(aColumnManager); | 63 | this.setSortedColumnManager(aColumnManager); |
67 | } | 64 | } |
68 | MochiKit.Signal.connect(aColumnManager, 'sort', this, 'handleColumnManagerSort'); | 65 | MochiKit.Signal.connect(aColumnManager, 'sort', this, 'handleColumnManagerSort'); |
69 | } | 66 | } |
70 | MochiKit.Signal.connect(aColumnManager, 'selectRow', this, 'handleColumnManagerSelectRow'); | 67 | MochiKit.Signal.connect(aColumnManager, 'selectRow', this, 'handleColumnManagerSelectRow'); |
71 | MochiKit.Signal.connect(aColumnManager, 'unselectRow', this, 'handleColumnManagerUnselectRow'); | 68 | MochiKit.Signal.connect(aColumnManager, 'unselectRow', this, 'handleColumnManagerUnselectRow'); |
72 | }, this); | 69 | }, this); |
73 | } | 70 | } |
74 | }, | 71 | }, |
75 | 72 | ||
76 | 'grid': function() { | 73 | 'grid': function() { |
77 | if (this._grid == null) { | 74 | if (this._grid == null) { |
78 | this.setupWithGrid(this.createGrid()); | 75 | this.setupWithGrid(this.createGrid()); |
79 | } | 76 | } |
80 | 77 | ||
81 | return this._grid; | 78 | return this._grid; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | 'filterController': function () { | 81 | 'filterController': function () { |
85 | //Clipperz.log('GridController.filterController >>>', this._filterController); | 82 | //Clipperz.log('GridController.filterController >>>', this._filterController); |
86 | if (this._filterController == null) { | 83 | if (this._filterController == null) { |
87 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); | 84 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); |
88 | } | 85 | } |
89 | //Clipperz.log('GridController.filterController <<<', this._filterController); | 86 | //Clipperz.log('GridController.filterController <<<', this._filterController); |
90 | return this._filterController; | 87 | return this._filterController; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //----------------------------------------------------------------------------- | 90 | //----------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'columnsManagers': function () { | 92 | 'columnsManagers': function () { |
96 | return this.grid().columnsManagers(); | 93 | return this.grid().columnsManagers(); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | 'columnManagerWithName': function (aName) { | 96 | 'columnManagerWithName': function (aName) { |
100 | varmanagers; | 97 | varmanagers; |
101 | var result; | 98 | var result; |
102 | 99 | ||
103 | managers = MochiKit.Base.filter(function (aManager) { return aManager.name() == aName; } , this.columnsManagers()); | 100 | managers = MochiKit.Base.filter(function (aManager) { return aManager.name() == aName; } , this.columnsManagers()); |
104 | 101 | ||
105 | if (managers.length == 1) { | 102 | if (managers.length == 1) { |
106 | result = managers[0]; | 103 | result = managers[0]; |
107 | } else if (managers.length == 0) { | 104 | } else if (managers.length == 0) { |
108 | result = null; | 105 | result = null; |
109 | } else { | 106 | } else { |
110 | throw "WTF!!!"; | 107 | throw "WTF!!!"; |
111 | } | 108 | } |
112 | 109 | ||
113 | return result; | 110 | return result; |
114 | }, | 111 | }, |
115 | 112 | ||
116 | 'sortedColumnManager': function () { | 113 | 'sortedColumnManager': function () { |
117 | return this._sortedColumnManager; | 114 | return this._sortedColumnManager; |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'setSortedColumnManager': function(aValue) { | 117 | 'setSortedColumnManager': function(aValue) { |
121 | if (aValue.sorted() != 'UNSORTED') { | 118 | if (aValue.sorted() != 'UNSORTED') { |
122 | this._sortedColumnManager = aValue; | 119 | this._sortedColumnManager = aValue; |
123 | } else { | 120 | } else { |
124 | this._sortedColumnManager = null; | 121 | this._sortedColumnManager = null; |
125 | } | 122 | } |
126 | }, | 123 | }, |
127 | 124 | ||
128 | //----------------------------------------------------------------------------- | 125 | //----------------------------------------------------------------------------- |
129 | 126 | ||
130 | 'handleColumnManagerSort': function(aSelectedColumnManager) { | 127 | 'handleColumnManagerSort': function(aSelectedColumnManager) { |
131 | MochiKit.Iter.forEach(this.columnsManagers(), function(aColumnManager) { | 128 | MochiKit.Iter.forEach(this.columnsManagers(), function(aColumnManager) { |
132 | if (aSelectedColumnManager != aColumnManager) { | 129 | if (aSelectedColumnManager != aColumnManager) { |
133 | if (aColumnManager.isSortable()) { | 130 | if (aColumnManager.isSortable()) { |
134 | aColumnManager.setSorted('UNSORTED'); | 131 | aColumnManager.setSorted('UNSORTED'); |
135 | } | 132 | } |
136 | } | 133 | } |
137 | }); | 134 | }); |
138 | 135 | ||
139 | aSelectedColumnManager.toggleSorting(); | 136 | aSelectedColumnManager.toggleSorting(); |
140 | this.setSortedColumnManager(aSelectedColumnManager); | 137 | this.setSortedColumnManager(aSelectedColumnManager); |
141 | 138 | ||
142 | this.displaySelectedRows(this.filterController().getFilter()); | 139 | this.displaySelectedRows(this.filterController().getFilter()); |
143 | }, | 140 | }, |
144 | 141 | ||
145 | 'handleColumnManagerSelectRow': function (aRowObject) { | 142 | 'handleColumnManagerSelectRow': function (aRowObject) { |
146 | this.grid().selectRow(aRowObject); | 143 | this.grid().selectRow(aRowObject); |
147 | }, | 144 | }, |
148 | 145 | ||
149 | 'handleColumnManagerUnselectRow': function (aRowObject) { | 146 | 'handleColumnManagerUnselectRow': function (aRowObject) { |
150 | this.grid().unselectRow(aRowObject); | 147 | this.grid().unselectRow(aRowObject); |
151 | }, | 148 | }, |
152 | 149 | ||
153 | //----------------------------------------------------------------------------- | 150 | //----------------------------------------------------------------------------- |
154 | 151 | ||
155 | 'handleFilterUpdated': function (aFilter) { | 152 | 'handleFilterUpdated': function (aFilter) { |
156 | if (this.grid().isActive()) { | 153 | if (this.grid().isActive()) { |
157 | this.displaySelectedRows(aFilter); | 154 | this.displaySelectedRows(aFilter); |
158 | } | 155 | } |
159 | }, | 156 | }, |
160 | 157 | ||
161 | //----------------------------------------------------------------------------- | 158 | //----------------------------------------------------------------------------- |
162 | //TODO: relying on user() in GridController, bad code smell :| | 159 | //TODO: relying on user() in GridController, bad code smell :| |
163 | //mhh: a controller should have access to business logic object too. Otherwise it will fail its controller role. [Giulio Cesare] | 160 | //mhh: a controller should have access to business logic object too. Otherwise it will fail its controller role. [Giulio Cesare] |
164 | 161 | ||
165 | 'setUser': function(anUser) { | 162 | 'setUser': function(anUser) { |
166 | this._user = anUser; | 163 | this._user = anUser; |
167 | }, | 164 | }, |
168 | 165 | ||
169 | 'user': function() { | 166 | 'user': function() { |
170 | return this._user; | 167 | return this._user; |
171 | }, | 168 | }, |
172 | 169 | ||
173 | //----------------------------------------------------------------------------- | 170 | //----------------------------------------------------------------------------- |
174 | 171 | ||
175 | 'run': function(args) { | 172 | 'run': function(args) { |
176 | //Clipperz.log("=== GridController.run"); | 173 | //Clipperz.log("=== GridController.run"); |
177 | var deferredResult; | 174 | var deferredResult; |
178 | 175 | ||
179 | this.setUser(args.user); | 176 | this.setUser(args.user); |
180 | args.slot.setContent(this.grid()); | 177 | args.slot.setContent(this.grid()); |
181 | this.filterController().registerFilterElement(this.grid().filterElement()); | 178 | this.filterController().registerFilterElement(this.grid().filterElement()); |
182 | MochiKit.Signal.connect(this.filterController(), 'filterUpdated', this, 'handleFilterUpdated'); | 179 | MochiKit.Signal.connect(this.filterController(), 'filterUpdated', this, 'handleFilterUpdated'); |
183 | 180 | ||
184 | return this.displaySelectedRows(); | 181 | return this.displaySelectedRows(); |
185 | }, | 182 | }, |
186 | 183 | ||
187 | //----------------------------------------------------------------------------- | 184 | //----------------------------------------------------------------------------- |
188 | 185 | ||
189 | 'handleGenericError': function(anError) { | 186 | 'handleGenericError': function(anError) { |
190 | var result; | 187 | var result; |
191 | 188 | ||
192 | if (anError instanceof MochiKit.Async.CancelledError) { | 189 | if (anError instanceof MochiKit.Async.CancelledError) { |
193 | result = anError; | 190 | result = anError; |
194 | } else { | 191 | } else { |
195 | Clipperz.log("## GridController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); | 192 | Clipperz.log("## GridController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); |
196 | result = new MochiKit.Async.CancelledError(anError); | 193 | result = new MochiKit.Async.CancelledError(anError); |
197 | } | 194 | } |
198 | 195 | ||
199 | return result; | 196 | return result; |
200 | }, | 197 | }, |
201 | 198 | ||
202 | //----------------------------------------------------------------------------- | 199 | //----------------------------------------------------------------------------- |
203 | 200 | ||
204 | 'getRows': function () { | 201 | 'getRows': function () { |
205 | throw Clipperz.Base.AbstractMethod; | 202 | throw Clipperz.Base.AbstractMethod; |
206 | }, | 203 | }, |
207 | 204 | ||
208 | //----------------------------------------------------------------------------- | 205 | //----------------------------------------------------------------------------- |
209 | 206 | ||
210 | 'setDeferredDisplaySelectedRowsInvocation': function (aDeferred) { | 207 | 'setDeferredDisplaySelectedRowsInvocation': function (aDeferred) { |
211 | if (this._deferredDisplaySelectedRowsInvocation != null) { | 208 | if (this._deferredDisplaySelectedRowsInvocation != null) { |
212 | this._deferredDisplaySelectedRowsInvocation.cancel(); | 209 | this._deferredDisplaySelectedRowsInvocation.cancel(); |
213 | } | 210 | } |
214 | 211 | ||
215 | this._deferredDisplaySelectedRowsInvocation = aDeferred; | 212 | this._deferredDisplaySelectedRowsInvocation = aDeferred; |
216 | }, | 213 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js index d88af41..d0b378c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { |
32 | this._args = args || {}; | 29 | this._args = args || {}; |
33 | 30 | ||
34 | this._loginPage = null; | 31 | this._loginPage = null; |
35 | 32 | ||
36 | this._newUserWizardController = null; | 33 | this._newUserWizardController = null; |
37 | this._newUserCreationComponent = null; | 34 | this._newUserCreationComponent = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { | 39 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; | 42 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | 'args': function () { | 45 | 'args': function () { |
49 | return this._args; | 46 | return this._args; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //----------------------------------------------------------------------------- | 49 | //----------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'loginPage': function() { | 51 | 'loginPage': function() { |
55 | if (this._loginPage == null) { | 52 | if (this._loginPage == null) { |
56 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); | 53 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); |
57 | 54 | ||
58 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') | 55 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') |
59 | } | 56 | } |
60 | 57 | ||
61 | return this._loginPage; | 58 | return this._loginPage; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'run': function(args) { | 63 | 'run': function(args) { |
67 | varslot; | 64 | varslot; |
68 | varloginPage; | 65 | varloginPage; |
69 | varloginForm; | 66 | varloginForm; |
70 | 67 | ||
71 | slot = args.slot; | 68 | slot = args.slot; |
72 | 69 | ||
73 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); | 70 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); |
74 | 71 | ||
75 | slot.setContent(this.loginPage()); | 72 | slot.setContent(this.loginPage()); |
76 | this.loginPage().slotNamed('loginForm').setContent(loginForm); | 73 | this.loginPage().slotNamed('loginForm').setContent(loginForm); |
77 | 74 | ||
78 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 75 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
79 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 76 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //----------------------------------------------------------------------------- | 79 | //----------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'doLogin': function(aLoginForm, anEvent) { | 81 | 'doLogin': function(aLoginForm, anEvent) { |
85 | var deferredResult; | 82 | var deferredResult; |
86 | varparameters; | 83 | varparameters; |
87 | // varshouldUseOTP; | 84 | // varshouldUseOTP; |
88 | var loginProgress; | 85 | var loginProgress; |
89 | varuser; | 86 | varuser; |
90 | var getPassphraseDelegate; | 87 | var getPassphraseDelegate; |
91 | 88 | ||
92 | parameters = anEvent; | 89 | parameters = anEvent; |
93 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); | 90 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); |
94 | 91 | ||
95 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); | 92 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); |
96 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); | 93 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); |
97 | 94 | ||
98 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); | 95 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); |
99 | 96 | ||
100 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); | 97 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); |
101 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); | 98 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); |
102 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); | 99 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); |
103 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); | 100 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); |
104 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); | 101 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); |
105 | // if (shouldUseOTP == false) { | 102 | // if (shouldUseOTP == false) { |
106 | deferredResult.addMethod(user, 'login'); | 103 | deferredResult.addMethod(user, 'login'); |
107 | // } else { | 104 | // } else { |
108 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); | 105 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); |
109 | // } | 106 | // } |
110 | deferredResult.addCallback(function(aLoginProgress, res) { | 107 | deferredResult.addCallback(function(aLoginProgress, res) { |
111 | aLoginProgress.disableCancel(); | 108 | aLoginProgress.disableCancel(); |
112 | return res; | 109 | return res; |
113 | }, loginProgress); | 110 | }, loginProgress); |
114 | deferredResult.addCallback(function () { | 111 | deferredResult.addCallback(function () { |
115 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); | 112 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); |
116 | }) | 113 | }) |
117 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); | 114 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); |
118 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); | 115 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); |
119 | 116 | ||
120 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); | 117 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); |
121 | deferredResult.addErrbackPass (MochiKit.Base.method(aLoginForm, 'focusOnPassphraseField')); | 118 | deferredResult.addErrbackPass (MochiKit.Base.method(aLoginForm, 'focusOnPassphraseField')); |
122 | deferredResult.addBoth(MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'removePassphraseDelegate', getPassphraseDelegate)); | 119 | deferredResult.addBoth(MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'removePassphraseDelegate', getPassphraseDelegate)); |
123 | deferredResult.callback(); | 120 | deferredResult.callback(); |
124 | 121 | ||
125 | MochiKit.Signal.connect(loginProgress, 'cancelEvent', deferredResult, 'cancel'); | 122 | MochiKit.Signal.connect(loginProgress, 'cancelEvent', deferredResult, 'cancel'); |
126 | 123 | ||
127 | return deferredResult; | 124 | return deferredResult; |
128 | }, | 125 | }, |
129 | 126 | ||
130 | //----------------------------------------------------------------------------- | 127 | //----------------------------------------------------------------------------- |
131 | 128 | ||
132 | 'userLoggedIn': function(aUser) { | 129 | 'userLoggedIn': function(aUser) { |
133 | //Clipperz.log(">>> LoginController.userLoggedIn"); | 130 | //Clipperz.log(">>> LoginController.userLoggedIn"); |
134 | MochiKit.Signal.signal(this, 'userLoggedIn', {user: aUser}); | 131 | MochiKit.Signal.signal(this, 'userLoggedIn', {user: aUser}); |
135 | //Clipperz.log("<<< LoginController.userLoggedIn"); | 132 | //Clipperz.log("<<< LoginController.userLoggedIn"); |
136 | }, | 133 | }, |
137 | 134 | ||
138 | //========================================================================= | 135 | //========================================================================= |
139 | 136 | ||
140 | 'handleCreateNewAccountClick': function (aComponent) { | 137 | 'handleCreateNewAccountClick': function (aComponent) { |
141 | // return Clipperz.PM.DataModel.User.registerNewAccount("new", "user"); | 138 | // return Clipperz.PM.DataModel.User.registerNewAccount("new", "user"); |
142 | return Clipperz.Async.callbacks("LoginController.handleCreateNewAccountClick", [ | 139 | return Clipperz.Async.callbacks("LoginController.handleCreateNewAccountClick", [ |
143 | //' MochiKit.Base.method(this, 'newUserCreationComponent'), | 140 | //' MochiKit.Base.method(this, 'newUserCreationComponent'), |
144 | // MochiKit.Base.methodcaller('deferredShowModal', {openFromElement:aComponent}), | 141 | // MochiKit.Base.methodcaller('deferredShowModal', {openFromElement:aComponent}), |
145 | // MochiKit.Base.method(this.newUserWizardController(), 'run') | 142 | // MochiKit.Base.method(this.newUserWizardController(), 'run') |
146 | 143 | ||
147 | 144 | ||
148 | MochiKit.Base.method(this, 'newUserCreationComponent'), | 145 | MochiKit.Base.method(this, 'newUserCreationComponent'), |
149 | Clipperz.Async.forkAndJoin("Async.test succeedingForkedAndWaitDeferrer", [ | 146 | Clipperz.Async.forkAndJoin("Async.test succeedingForkedAndWaitDeferrer", [ |
150 | MochiKit.Base.method(this.newUserCreationComponent(), 'deferredShowModal', {openFromElement:aComponent, duration:0.5}), | 147 | MochiKit.Base.method(this.newUserCreationComponent(), 'deferredShowModal', {openFromElement:aComponent, duration:0.5}), |
151 | MochiKit.Base.method(this.newUserWizardController(), 'run') | 148 | MochiKit.Base.method(this.newUserWizardController(), 'run') |
152 | ], {trace:false}), | 149 | ], {trace:false}), |
153 | // MochiKit.Base.method(this.newUserCreationComponent(), 'enableCredentialsField') | 150 | // MochiKit.Base.method(this.newUserCreationComponent(), 'enableCredentialsField') |
154 | ], {trace:false}); | 151 | ], {trace:false}); |
155 | }, | 152 | }, |
156 | 153 | ||
157 | //----------------------------------------------------------------------------- | 154 | //----------------------------------------------------------------------------- |
158 | 155 | ||
159 | 'newUserWizardController': function () { | 156 | 'newUserWizardController': function () { |
160 | if (this._newUserWizardController == null) { | 157 | if (this._newUserWizardController == null) { |
161 | this._newUserWizardController = new Clipperz.PM.UI.Web.Controllers.NewUserWizardController({ | 158 | this._newUserWizardController = new Clipperz.PM.UI.Web.Controllers.NewUserWizardController({ |
162 | 'newUserCreationComponent': this.newUserCreationComponent() | 159 | 'newUserCreationComponent': this.newUserCreationComponent() |
163 | }) | 160 | }) |
164 | 161 | ||
165 | // MochiKit.Signal.connect(this._newUserWizardController, 'exit',this, 'handleHideNewUserCreationComponent'); | 162 | // MochiKit.Signal.connect(this._newUserWizardController, 'exit',this, 'handleHideNewUserCreationComponent'); |
166 | MochiKit.Signal.connect(this._newUserWizardController, 'done',this, 'handleCompleteNewUserCreationComponent'); | 163 | MochiKit.Signal.connect(this._newUserWizardController, 'done',this, 'handleCompleteNewUserCreationComponent'); |
167 | } | 164 | } |
168 | 165 | ||
169 | return this._newUserWizardController; | 166 | return this._newUserWizardController; |
170 | }, | 167 | }, |
171 | 168 | ||
172 | //------------------------------------------------------------------------- | 169 | //------------------------------------------------------------------------- |
173 | 170 | ||
174 | 'newUserCreationComponent': function () { | 171 | 'newUserCreationComponent': function () { |
175 | if (this._newUserCreationComponent == null) { | 172 | if (this._newUserCreationComponent == null) { |
176 | this._newUserCreationComponent = new Clipperz.PM.UI.Web.Components.NewUserCreationComponent(); | 173 | this._newUserCreationComponent = new Clipperz.PM.UI.Web.Components.NewUserCreationComponent(); |
177 | } | 174 | } |
178 | 175 | ||
179 | return this._newUserCreationComponent; | 176 | return this._newUserCreationComponent; |
180 | }, | 177 | }, |
181 | 178 | ||
182 | 'clearNewUserCreationComponent': function () { | 179 | 'clearNewUserCreationComponent': function () { |
183 | if (this._newUserCreationComponent != null) { | 180 | if (this._newUserCreationComponent != null) { |
184 | this._newUserCreationComponent.clear(); | 181 | this._newUserCreationComponent.clear(); |
185 | } | 182 | } |
186 | this._newUserCreationComponent = null; | 183 | this._newUserCreationComponent = null; |
187 | }, | 184 | }, |
188 | 185 | ||
189 | //------------------------------------------------------------------------- | 186 | //------------------------------------------------------------------------- |
190 | 187 | ||
191 | 'handleHideNewUserCreationComponent': function () { | 188 | 'handleHideNewUserCreationComponent': function () { |
192 | this.clearNewUserCreationComponent(); | 189 | this.clearNewUserCreationComponent(); |
193 | }, | 190 | }, |
194 | 191 | ||
195 | 'handleCompleteNewUserCreationComponent': function (someParameters) { | 192 | 'handleCompleteNewUserCreationComponent': function (someParameters) { |
196 | vardeferredResult; | 193 | vardeferredResult; |
197 | varuser; | 194 | varuser; |
198 | varnewUserCreationComponent; | 195 | varnewUserCreationComponent; |
199 | 196 | ||
200 | user = someParameters.user; | 197 | user = someParameters.user; |
201 | newUserCreationComponent = this.newUserCreationComponent(); | 198 | newUserCreationComponent = this.newUserCreationComponent(); |
202 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(newUserCreationComponent, 'deferredHideModal', {closeToElement:MochiKit.DOM.currentDocument().body})), | 199 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(newUserCreationComponent, 'deferredHideModal', {closeToElement:MochiKit.DOM.currentDocument().body})), |
203 | 200 | ||
204 | deferredResult = new Clipperz.Async.Deferred("LoginController.handleCompleteNewUserCreationComponent", {trace:false}); | 201 | deferredResult = new Clipperz.Async.Deferred("LoginController.handleCompleteNewUserCreationComponent", {trace:false}); |
205 | 202 | ||
206 | deferredResult.addCallbackList([ | 203 | deferredResult.addCallbackList([ |
207 | MochiKit.Base.method(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'), | 204 | MochiKit.Base.method(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'), |
208 | MochiKit.Base.method(user, 'login'), | 205 | MochiKit.Base.method(user, 'login'), |
209 | MochiKit.Base.method(this, 'userLoggedIn', user), | 206 | MochiKit.Base.method(this, 'userLoggedIn', user), |
210 | MochiKit.Base.method(this, 'clearNewUserCreationComponent') | 207 | MochiKit.Base.method(this, 'clearNewUserCreationComponent') |
211 | ]); | 208 | ]); |
212 | deferredResult.addErrback(function (aValue) { Clipperz.log("WTF!! Error doing the login after creating a new user" + aValue)}); | 209 | deferredResult.addErrback(function (aValue) { Clipperz.log("WTF!! Error doing the login after creating a new user" + aValue)}); |
213 | deferredResult.callback(); | 210 | deferredResult.callback(); |
214 | 211 | ||
215 | return deferredResult; | 212 | return deferredResult; |
216 | }, | 213 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js index aa0d6ad..c83e3c0 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.MainController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.MainController = function(args) { |
32 | this._args = args; | 29 | this._args = args; |
33 | 30 | ||
34 | //controllers | 31 | //controllers |
35 | this._loginController =null; | 32 | this._loginController =null; |
36 | this._appController =null; | 33 | this._appController =null; |
37 | 34 | ||
38 | //components | 35 | //components |
39 | this._headerComponent = null; | 36 | this._headerComponent = null; |
40 | this._pageComponent =null; | 37 | this._pageComponent =null; |
41 | this._footerComponent = null; | 38 | this._footerComponent = null; |
42 | 39 | ||
43 | this._passphraseDelegateLock = new MochiKit.Async.DeferredLock(); | 40 | this._passphraseDelegateLock = new MochiKit.Async.DeferredLock(); |
44 | this._passphraseDelegateLock.acquire(); | 41 | this._passphraseDelegateLock.acquire(); |
45 | //Clipperz.log('MainController init _passphraseDelegateLock', this._passphraseDelegateLock); | 42 | //Clipperz.log('MainController init _passphraseDelegateLock', this._passphraseDelegateLock); |
46 | this._passphraseDelegate = null; | 43 | this._passphraseDelegate = null; |
47 | 44 | ||
48 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestSent', this, 'handleRemoteRequestSent'); | 45 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestSent', this, 'handleRemoteRequestSent'); |
49 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestReceived',this, 'handleRemoteRequestReceived'); | 46 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestReceived',this, 'handleRemoteRequestReceived'); |
50 | 47 | ||
51 | return this; | 48 | return this; |
52 | } | 49 | } |
53 | 50 | ||
54 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.MainController.prototype, { | 51 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.MainController.prototype, { |
55 | 52 | ||
56 | 'toString': function() { | 53 | 'toString': function() { |
57 | return "Clipperz.PM.UI.Web.Controllers.MainController"; | 54 | return "Clipperz.PM.UI.Web.Controllers.MainController"; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | 'args': function () { | 57 | 'args': function () { |
61 | return this._args; | 58 | return this._args; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'headerComponent': function() { | 63 | 'headerComponent': function() { |
67 | if (this._headerComponent == null) { | 64 | if (this._headerComponent == null) { |
68 | this._headerComponent = new Clipperz.PM.UI.Web.Components.PageHeader(); | 65 | this._headerComponent = new Clipperz.PM.UI.Web.Components.PageHeader(); |
69 | } | 66 | } |
70 | 67 | ||
71 | return this._headerComponent; | 68 | return this._headerComponent; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'footerComponent': function() { | 71 | 'footerComponent': function() { |
75 | if (this._footerComponent == null) { | 72 | if (this._footerComponent == null) { |
76 | this._footerComponent = new Clipperz.PM.UI.Web.Components.PageFooter(); | 73 | this._footerComponent = new Clipperz.PM.UI.Web.Components.PageFooter(); |
77 | } | 74 | } |
78 | 75 | ||
79 | return this._footerComponent; | 76 | return this._footerComponent; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //----------------------------------------------------------------------------- | 79 | //----------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'pageComponent': function() { | 81 | 'pageComponent': function() { |
85 | if (this._pageComponent == null) { | 82 | if (this._pageComponent == null) { |
86 | this._pageComponent = new Clipperz.PM.UI.Web.Components.Page({element:MochiKit.DOM.getElement('mainDiv')}); | 83 | this._pageComponent = new Clipperz.PM.UI.Web.Components.Page({element:MochiKit.DOM.getElement('mainDiv')}); |
87 | } | 84 | } |
88 | 85 | ||
89 | return this._pageComponent; | 86 | return this._pageComponent; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //----------------------------------------------------------------------------- | 89 | //----------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'loginController': function() { | 91 | 'loginController': function() { |
95 | if (this._loginController == null) { | 92 | if (this._loginController == null) { |
96 | this._loginController = new Clipperz.PM.UI.Web.Controllers.LoginController(this.args()); | 93 | this._loginController = new Clipperz.PM.UI.Web.Controllers.LoginController(this.args()); |
97 | 94 | ||
98 | MochiKit.Signal.connect(this._loginController, 'userLoggedIn', this, 'loginControllerUserLoggedInCallback'); | 95 | MochiKit.Signal.connect(this._loginController, 'userLoggedIn', this, 'loginControllerUserLoggedInCallback'); |
99 | } | 96 | } |
100 | 97 | ||
101 | return this._loginController; | 98 | return this._loginController; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | 'appController': function() { | 101 | 'appController': function() { |
105 | if (this._appController == null) { | 102 | if (this._appController == null) { |
106 | this._appController = new Clipperz.PM.UI.Web.Controllers.AppController(); | 103 | this._appController = new Clipperz.PM.UI.Web.Controllers.AppController(); |
107 | 104 | ||
108 | MochiKit.Signal.connect(this._appController, 'logout', this, 'handleLogout'); | 105 | MochiKit.Signal.connect(this._appController, 'logout', this, 'handleLogout'); |
109 | } | 106 | } |
110 | 107 | ||
111 | return this._appController; | 108 | return this._appController; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //----------------------------------------------------------------------------- | 111 | //----------------------------------------------------------------------------- |
115 | 112 | ||
116 | 'run': function(shoudShowRegistrationForm) { | 113 | 'run': function(shoudShowRegistrationForm) { |
117 | this.pageComponent().slotNamed('header').setContent(this.headerComponent()); | 114 | this.pageComponent().slotNamed('header').setContent(this.headerComponent()); |
118 | this.pageComponent().slotNamed('footer').setContent(this.footerComponent()); | 115 | this.pageComponent().slotNamed('footer').setContent(this.footerComponent()); |
119 | 116 | ||
120 | this.pageComponent().render(); | 117 | this.pageComponent().render(); |
121 | 118 | ||
122 | this.loginController().run({slot:this.pageComponent().slotNamed('body')}); | 119 | this.loginController().run({slot:this.pageComponent().slotNamed('body')}); |
123 | 120 | ||
124 | if (shoudShowRegistrationForm) { | 121 | if (shoudShowRegistrationForm) { |
125 | MochiKit.Signal.signal(this.loginController().loginPage(), 'createNewAccountClick'); | 122 | MochiKit.Signal.signal(this.loginController().loginPage(), 'createNewAccountClick'); |
126 | // this.loginController().handleCreateNewAccountClick(); | 123 | // this.loginController().handleCreateNewAccountClick(); |
127 | } | 124 | } |
128 | }, | 125 | }, |
129 | 126 | ||
130 | //----------------------------------------------------------------------------- | 127 | //----------------------------------------------------------------------------- |
131 | 128 | ||
132 | 'getPassphrase': function () { | 129 | 'getPassphrase': function () { |
133 | var deferredResult; | 130 | var deferredResult; |
134 | 131 | ||
135 | deferredResult = new Clipperz.Async.Deferred("MainController.getPassphrase", {trace:false}); | 132 | deferredResult = new Clipperz.Async.Deferred("MainController.getPassphrase", {trace:false}); |
136 | 133 | ||
137 | deferredResult.acquireLock(this._passphraseDelegateLock); | 134 | deferredResult.acquireLock(this._passphraseDelegateLock); |
138 | deferredResult.addMethod(this, 'invokePassphraseDelegate'); | 135 | deferredResult.addMethod(this, 'invokePassphraseDelegate'); |
139 | deferredResult.releaseLock(this._passphraseDelegateLock); | 136 | deferredResult.releaseLock(this._passphraseDelegateLock); |
140 | deferredResult.callback(); | 137 | deferredResult.callback(); |
141 | 138 | ||
142 | return deferredResult; | 139 | return deferredResult; |
143 | }, | 140 | }, |
144 | 141 | ||
145 | //......................................................................... | 142 | //......................................................................... |
146 | 143 | ||
147 | 'invokePassphraseDelegate': function () { | 144 | 'invokePassphraseDelegate': function () { |
148 | return this._passphraseDelegate(); | 145 | return this._passphraseDelegate(); |
149 | }, | 146 | }, |
150 | 147 | ||
151 | 'passphraseDelegateLock': function () { | 148 | 'passphraseDelegateLock': function () { |
152 | return this._passphraseDelegateLock; | 149 | return this._passphraseDelegateLock; |
153 | }, | 150 | }, |
154 | 151 | ||
155 | //......................................................................... | 152 | //......................................................................... |
156 | 153 | ||
157 | 'setPassphraseDelegate': function (aDelegate) { | 154 | 'setPassphraseDelegate': function (aDelegate) { |
158 | var shouldReleaseLock; | 155 | var shouldReleaseLock; |
159 | 156 | ||
160 | shouldReleaseLock = (this._passphraseDelegate == null); | 157 | shouldReleaseLock = (this._passphraseDelegate == null); |
161 | 158 | ||
162 | this._passphraseDelegate = aDelegate; | 159 | this._passphraseDelegate = aDelegate; |
163 | 160 | ||
164 | if (shouldReleaseLock) { | 161 | if (shouldReleaseLock) { |
165 | this._passphraseDelegateLock.release(); | 162 | this._passphraseDelegateLock.release(); |
166 | } | 163 | } |
167 | }, | 164 | }, |
168 | 165 | ||
169 | //......................................................................... | 166 | //......................................................................... |
170 | 167 | ||
171 | 'removePassphraseDelegate': function (aDelegate) { | 168 | 'removePassphraseDelegate': function (aDelegate) { |
172 | if (this._passphraseDelegate == aDelegate) { | 169 | if (this._passphraseDelegate == aDelegate) { |
173 | this._passphraseDelegate = null; | 170 | this._passphraseDelegate = null; |
174 | this._passphraseDelegateLock.acquire(); | 171 | this._passphraseDelegateLock.acquire(); |
175 | } | 172 | } |
176 | }, | 173 | }, |
177 | 174 | ||
178 | //------------------------------------------------------------------------- | 175 | //------------------------------------------------------------------------- |
179 | 176 | ||
180 | 'loginControllerUserLoggedInCallback': function(anEvent) { | 177 | 'loginControllerUserLoggedInCallback': function(anEvent) { |
181 | //Clipperz.log(">>> loginControllerUserLoggedInCallback", anEvent); | 178 | //Clipperz.log(">>> loginControllerUserLoggedInCallback", anEvent); |
182 | // this.setUser(anEvent.parameters()['user']); | 179 | // this.setUser(anEvent.parameters()['user']); |
183 | //console.log("--- loginControllerUserLoggedInCallback - 1"); | 180 | //console.log("--- loginControllerUserLoggedInCallback - 1"); |
184 | 181 | ||
185 | //console.log("--- loginControllerUserLoggedInCallback - 2"); | 182 | //console.log("--- loginControllerUserLoggedInCallback - 2"); |
186 | this.headerComponent().switchToLoggedMode(); | 183 | this.headerComponent().switchToLoggedMode(); |
187 | this.appController().run({slot:this.pageComponent().slotNamed('body'), user:anEvent['user']}); | 184 | this.appController().run({slot:this.pageComponent().slotNamed('body'), user:anEvent['user']}); |
188 | //Clipperz.log("<<< loginControllerUserLoggedInCallback"); | 185 | //Clipperz.log("<<< loginControllerUserLoggedInCallback"); |
189 | }, | 186 | }, |
190 | 187 | ||
191 | //----------------------------------------------------------------------------- | 188 | //----------------------------------------------------------------------------- |
192 | 189 | ||
193 | 'handleRemoteRequestSent': function () { | 190 | 'handleRemoteRequestSent': function () { |
194 | //Clipperz.log("REMOTE REQUEST sent >>>"); | 191 | //Clipperz.log("REMOTE REQUEST sent >>>"); |
195 | }, | 192 | }, |
196 | 193 | ||
197 | 'handleRemoteRequestReceived': function () { | 194 | 'handleRemoteRequestReceived': function () { |
198 | //Clipperz.log("REMOTE REQUEST received <<<"); | 195 | //Clipperz.log("REMOTE REQUEST received <<<"); |
199 | }, | 196 | }, |
200 | 197 | ||
201 | //----------------------------------------------------------------------------- | 198 | //----------------------------------------------------------------------------- |
202 | 199 | ||
203 | 'handleLogout': function(anEvent) { | 200 | 'handleLogout': function(anEvent) { |
204 | this.exit('logout.html'); | 201 | this.exit('logout.html'); |
205 | }, | 202 | }, |
206 | 203 | ||
207 | //----------------------------------------------------------------------------- | 204 | //----------------------------------------------------------------------------- |
208 | 205 | ||
209 | 'exit': function(aPageName) { | 206 | 'exit': function(aPageName) { |
210 | //Clipperz.log("### exit " + aPageName); | 207 | //Clipperz.log("### exit " + aPageName); |
211 | MochiKit.Async.wait(0).addCallback(function() { | 208 | MochiKit.Async.wait(0).addCallback(function() { |
212 | window.location.href = "./" + aPageName + "?ln=" + Clipperz.PM.Strings.selectedLanguage; | 209 | window.location.href = "./" + aPageName + "?ln=" + Clipperz.PM.Strings.selectedLanguage; |
213 | }); | 210 | }); |
214 | }, | 211 | }, |
215 | 212 | ||
216 | //----------------------------------------------------------------------------- | 213 | //----------------------------------------------------------------------------- |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js index 28d9d20..7db6888 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) { |
32 | this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | 30 | ||
34 | MochiKit.Signal.connect(this._newUserCreationComponent, 'changedValue',this, 'handleChangedValue'); | 31 | MochiKit.Signal.connect(this._newUserCreationComponent, 'changedValue',this, 'handleChangedValue'); |
35 | MochiKit.Signal.connect(this._newUserCreationComponent, 'moveForward',this, 'handleMoveForward'); | 32 | MochiKit.Signal.connect(this._newUserCreationComponent, 'moveForward',this, 'handleMoveForward'); |
36 | MochiKit.Signal.connect(this._newUserCreationComponent, 'keyPressed',this, 'handleNewUserCreationComponentKeyPressed'); | 33 | MochiKit.Signal.connect(this._newUserCreationComponent, 'keyPressed',this, 'handleNewUserCreationComponentKeyPressed'); |
37 | 34 | ||
38 | this._rulerComponent = null; | 35 | this._rulerComponent = null; |
39 | 36 | ||
40 | this._steps = null; | 37 | this._steps = null; |
41 | this._currentStepIndex = 0; | 38 | this._currentStepIndex = 0; |
42 | this._isNextEnabled = false; | 39 | this._isNextEnabled = false; |
43 | 40 | ||
44 | this._userCreationState = 'IDLE'; //'IN PROGRESS', 'DONE', 'FAILED' | 41 | this._userCreationState = 'IDLE'; //'IN PROGRESS', 'DONE', 'FAILED' |
45 | this._user = null; | 42 | this._user = null; |
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prototype, { | 46 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prototype, { |
50 | 47 | ||
51 | 'toString': function() { | 48 | 'toString': function() { |
52 | return "Clipperz.PM.UI.Web.Controllers.NewUserWizardController"; | 49 | return "Clipperz.PM.UI.Web.Controllers.NewUserWizardController"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'newUserCreationComponent': function () { | 54 | 'newUserCreationComponent': function () { |
58 | return this._newUserCreationComponent; | 55 | return this._newUserCreationComponent; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //============================================================================= | 58 | //============================================================================= |
62 | 59 | ||
63 | 'user': function () { | 60 | 'user': function () { |
64 | return this._user; | 61 | return this._user; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'setUser': function (aValue) { | 64 | 'setUser': function (aValue) { |
68 | this._user = aValue; | 65 | this._user = aValue; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //----------------------------------------------------------------------------- | 68 | //----------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'userCreationState': function () { | 70 | 'userCreationState': function () { |
74 | return this._userCreationState; | 71 | return this._userCreationState; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | 'setUserCreationState': function (aValue) { | 74 | 'setUserCreationState': function (aValue) { |
78 | //console.log("+++ NewUserWizardController.setUserCreationState", aValue); | 75 | //console.log("+++ NewUserWizardController.setUserCreationState", aValue); |
79 | this._userCreationState = aValue; | 76 | this._userCreationState = aValue; |
80 | this.checkState(); | 77 | this.checkState(); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //============================================================================= | 80 | //============================================================================= |
84 | 81 | ||
85 | 'resetCurrentStepIndex': function () { | 82 | 'resetCurrentStepIndex': function () { |
86 | this._currentStepIndex = 0; | 83 | this._currentStepIndex = 0; |
87 | this.rulerComponent().resetStatus({animateTransition:true}); | 84 | this.rulerComponent().resetStatus({animateTransition:true}); |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //----------------------------------------------------------------------------- | 87 | //----------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'enableNext': function (aValue) { | 89 | 'enableNext': function (aValue) { |
93 | this.rulerComponent().enableNext(aValue); | 90 | this.rulerComponent().enableNext(aValue); |
94 | this._isNextEnabled = aValue; | 91 | this._isNextEnabled = aValue; |
95 | }, | 92 | }, |
96 | 93 | ||
97 | 'isNextEnabled': function () { | 94 | 'isNextEnabled': function () { |
98 | return this._isNextEnabled; | 95 | return this._isNextEnabled; |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //----------------------------------------------------------------------------- | 98 | //----------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'enablePrevious': function (aValue) { | 100 | 'enablePrevious': function (aValue) { |
104 | this.rulerComponent().enablePrevious(aValue); | 101 | this.rulerComponent().enablePrevious(aValue); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //============================================================================= | 104 | //============================================================================= |
108 | 105 | ||
109 | 'rulerComponent': function () { | 106 | 'rulerComponent': function () { |
110 | if (this._rulerComponent == null) { | 107 | if (this._rulerComponent == null) { |
111 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ | 108 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ |
112 | translationContext:'Wizards.NewUserWizard' | 109 | translationContext:'Wizards.NewUserWizard' |
113 | }); | 110 | }); |
114 | this._rulerComponent.render(); | 111 | this._rulerComponent.render(); |
115 | 112 | ||
116 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); | 113 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); |
117 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); | 114 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); |
118 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); | 115 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); |
119 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); | 116 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); |
120 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); | 117 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); |
121 | } | 118 | } |
122 | 119 | ||
123 | return this._rulerComponent; | 120 | return this._rulerComponent; |
124 | }, | 121 | }, |
125 | 122 | ||
126 | 'resetRuler': function () { | 123 | 'resetRuler': function () { |
127 | // if (this._rulerComponent != null) { | 124 | // if (this._rulerComponent != null) { |
128 | // this._rulerComponent.clear(); | 125 | // this._rulerComponent.clear(); |
129 | // } | 126 | // } |
130 | // this._rulerComponent = null; | 127 | // this._rulerComponent = null; |
131 | }, | 128 | }, |
132 | 129 | ||
133 | //----------------------------------------------------------------------------- | 130 | //----------------------------------------------------------------------------- |
134 | 131 | ||
135 | 'showRuler': function (someSteps) { | 132 | 'showRuler': function (someSteps) { |
136 | var rulerElement; | 133 | var rulerElement; |
137 | 134 | ||
138 | this.setSteps(someSteps); | 135 | this.setSteps(someSteps); |
139 | 136 | ||
140 | rulerElement = this.rulerComponent().element(); | 137 | rulerElement = this.rulerComponent().element(); |
141 | this.newUserCreationComponent().disableAllPanels(); | 138 | this.newUserCreationComponent().disableAllPanels(); |
142 | 139 | ||
143 | MochiKit.Style.showElement(rulerElement); | 140 | MochiKit.Style.showElement(rulerElement); |
144 | MochiKit.Style.setElementPosition(rulerElement, {x:-1000, y:this.newUserCreationComponent().bottomMargin()}); | 141 | MochiKit.Style.setElementPosition(rulerElement, {x:-1000, y:this.newUserCreationComponent().bottomMargin()}); |
145 | new MochiKit.Visual.Move(rulerElement, { | 142 | new MochiKit.Visual.Move(rulerElement, { |
146 | x:0, y:this.newUserCreationComponent().bottomMargin(), | 143 | x:0, y:this.newUserCreationComponent().bottomMargin(), |
147 | mode:'absolute', | 144 | mode:'absolute', |
148 | duration:0.5, | 145 | duration:0.5, |
149 | // afterFinish:MochiKit.Base.method(this, 'handleCursorMoved') | 146 | // afterFinish:MochiKit.Base.method(this, 'handleCursorMoved') |
150 | afterFinish:MochiKit.Base.method(this, 'handleRulerShowed') | 147 | afterFinish:MochiKit.Base.method(this, 'handleRulerShowed') |
151 | }); | 148 | }); |
152 | }, | 149 | }, |
153 | 150 | ||
154 | //----------------------------------------------------------------------------- | 151 | //----------------------------------------------------------------------------- |
155 | 152 | ||
156 | 'handleRulerShowed':function () { | 153 | 'handleRulerShowed':function () { |
157 | return Clipperz.Async.callbacks("NewUserWizardController.handlerRulerShowed", [ | 154 | return Clipperz.Async.callbacks("NewUserWizardController.handlerRulerShowed", [ |
158 | MochiKit.Base.method(this.newUserCreationComponent(), 'waitUntilFullyRendered'), | 155 | MochiKit.Base.method(this.newUserCreationComponent(), 'waitUntilFullyRendered'), |
159 | MochiKit.Base.method(this, 'handleCursorMoved') | 156 | MochiKit.Base.method(this, 'handleCursorMoved') |
160 | ], {trace:false}); | 157 | ], {trace:false}); |
161 | }, | 158 | }, |
162 | 159 | ||
163 | //----------------------------------------------------------------------------- | 160 | //----------------------------------------------------------------------------- |
164 | 161 | ||
165 | 'hideRuler': function () { | 162 | 'hideRuler': function () { |
166 | new MochiKit.Visual.Move(this.rulerComponent().element(), {x:-1000, mode:'relative', duration:0.5}); | 163 | new MochiKit.Visual.Move(this.rulerComponent().element(), {x:-1000, mode:'relative', duration:0.5}); |
167 | }, | 164 | }, |
168 | 165 | ||
169 | 'doneWithRuler': function () { | 166 | 'doneWithRuler': function () { |
170 | var rulerComponentElement; | 167 | var rulerComponentElement; |
171 | 168 | ||
172 | rulerComponentElement = this.rulerComponent().element(); | 169 | rulerComponentElement = this.rulerComponent().element(); |
173 | new MochiKit.Visual.Move(this.rulerComponent().element(), { | 170 | new MochiKit.Visual.Move(this.rulerComponent().element(), { |
174 | x:1000, | 171 | x:1000, |
175 | mode:'relative', | 172 | mode:'relative', |
176 | duration:1, | 173 | duration:1, |
177 | // afterFinish:MochiKit.Base.partial(MochiKit.Style.hideElement, rulerComponentElement) | 174 | // afterFinish:MochiKit.Base.partial(MochiKit.Style.hideElement, rulerComponentElement) |
178 | afterFinish:function () { MochiKit.Style.hideElement(rulerComponentElement); } | 175 | afterFinish:function () { MochiKit.Style.hideElement(rulerComponentElement); } |
179 | }); | 176 | }); |
180 | }, | 177 | }, |
181 | 178 | ||
182 | //============================================================================= | 179 | //============================================================================= |
183 | 180 | ||
184 | 'createNewUserRulerSteps': function () { | 181 | 'createNewUserRulerSteps': function () { |
185 | return [ 'CREDENTIALS', 'CHECK_CREDENTIALS', 'TERMS_OF_SERVICE', 'CREATE_USER'/*, 'LOGIN' */]; | 182 | return [ 'CREDENTIALS', 'CHECK_CREDENTIALS', 'TERMS_OF_SERVICE', 'CREATE_USER'/*, 'LOGIN' */]; |
186 | }, | 183 | }, |
187 | 184 | ||
188 | //------------------------------------------------------------------------- | 185 | //------------------------------------------------------------------------- |
189 | 186 | ||
190 | 'run': function () { | 187 | 'run': function () { |
191 | return Clipperz.Async.callbacks("NewUserWizardController.run", [ | 188 | return Clipperz.Async.callbacks("NewUserWizardController.run", [ |
192 | MochiKit.Base.method(this, 'createNewUserRulerSteps'), | 189 | MochiKit.Base.method(this, 'createNewUserRulerSteps'), |
193 | MochiKit.Base.method(this, 'showRuler') | 190 | MochiKit.Base.method(this, 'showRuler') |
194 | ], {trace:false}); | 191 | ], {trace:false}); |
195 | }, | 192 | }, |
196 | 193 | ||
197 | //----------------------------------------------------------------------------- | 194 | //----------------------------------------------------------------------------- |
198 | 195 | ||
199 | 'checkState': function () { | 196 | 'checkState': function () { |
200 | var enablePrevious; | 197 | var enablePrevious; |
201 | var enableNext; | 198 | var enableNext; |
202 | 199 | ||
203 | enablePrevious = true; | 200 | enablePrevious = true; |
204 | enableNext = false; | 201 | enableNext = false; |
205 | 202 | ||
206 | this.newUserCreationComponent().disableAllPanels(); | 203 | this.newUserCreationComponent().disableAllPanels(); |
207 | 204 | ||
208 | switch(this.currentStep()) { | 205 | switch(this.currentStep()) { |
209 | case 'CREDENTIALS': | 206 | case 'CREDENTIALS': |
210 | this.newUserCreationComponent().enableCredentialsPanel(); | 207 | this.newUserCreationComponent().enableCredentialsPanel(); |
211 | 208 | ||
212 | enableNext = ( | 209 | enableNext = ( |
213 | (this.newUserCreationComponent().username() != '') | 210 | (this.newUserCreationComponent().username() != '') |
214 | && | 211 | && |
215 | (this.newUserCreationComponent().passphrase() != '') | 212 | (this.newUserCreationComponent().passphrase() != '') |
216 | ); | 213 | ); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js index 23fd236..5380aa1 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js | |||
@@ -1,166 +1,163 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._cardReference = null; | 33 | this._cardReference = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.iPhone.Components.CardDetail component"; | 45 | return "Clipperz.PM.UI.iPhone.Components.CardDetail component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'cardReference': function () { | 50 | 'cardReference': function () { |
54 | return this._cardReference; | 51 | return this._cardReference; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setCardReference': function (aValue) { | 54 | 'setCardReference': function (aValue) { |
58 | this._cardReference = aValue; | 55 | this._cardReference = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'renderSelf': function(/*aContainer, aPosition*/) { | 60 | 'renderSelf': function(/*aContainer, aPosition*/) { |
64 | this.append(this.element(), [ | 61 | this.append(this.element(), [ |
65 | {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ | 62 | {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ |
66 | {tag:'div', id:this.getId('progressBar')} //, | 63 | {tag:'div', id:this.getId('progressBar')} //, |
67 | // {tag:'h1', cls:'loading', html:"loading"} | 64 | // {tag:'h1', cls:'loading', html:"loading"} |
68 | ]} | 65 | ]} |
69 | ]); | 66 | ]); |
70 | 67 | ||
71 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 68 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
72 | MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); | 69 | MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //========================================================================= | 72 | //========================================================================= |
76 | 73 | ||
77 | 'showCardDetails': function (someData) { | 74 | 'showCardDetails': function (someData) { |
78 | this.element().innerHTML = ''; | 75 | this.element().innerHTML = ''; |
79 | this.append(this.element(), [ | 76 | this.append(this.element(), [ |
80 | {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { | 77 | {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { |
81 | return {tag:'div', cls:'row', children:[ | 78 | return {tag:'div', cls:'row', children:[ |
82 | {tag:'label', html:aFieldData['label']}, | 79 | {tag:'label', html:aFieldData['label']}, |
83 | // {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), html:aFieldData['value']} | 80 | // {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), html:aFieldData['value']} |
84 | {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), children:[ | 81 | {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), children:[ |
85 | {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} | 82 | {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} |
86 | ]} | 83 | ]} |
87 | // {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), value:aFieldData['value'], disabled:true} | 84 | // {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), value:aFieldData['value'], disabled:true} |
88 | 85 | ||
89 | ]} | 86 | ]} |
90 | }, someData['fields'])} | 87 | }, someData['fields'])} |
91 | ]); | 88 | ]); |
92 | 89 | ||
93 | MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { | 90 | MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { |
94 | MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) | 91 | MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) |
95 | }, this)); | 92 | }, this)); |
96 | 93 | ||
97 | if (someData['directLogins'].length > 0) { | 94 | if (someData['directLogins'].length > 0) { |
98 | this.append(this.element(), [ | 95 | this.append(this.element(), [ |
99 | {tag:'h2', html:"Direct logins"}, | 96 | {tag:'h2', html:"Direct logins"}, |
100 | {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { | 97 | {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { |
101 | return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ | 98 | return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ |
102 | {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, | 99 | {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, |
103 | // {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} | 100 | // {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} |
104 | {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} | 101 | {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} |
105 | ]} | 102 | ]} |
106 | }, someData['directLogins'])} | 103 | }, someData['directLogins'])} |
107 | ]); | 104 | ]); |
108 | 105 | ||
109 | MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { | 106 | MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { |
110 | MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); | 107 | MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); |
111 | }, this), | 108 | }, this), |
112 | MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) | 109 | MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) |
113 | ) | 110 | ) |
114 | }; | 111 | }; |
115 | 112 | ||
116 | if (someData['notes'] != '') { | 113 | if (someData['notes'] != '') { |
117 | this.append(this.element(), [ | 114 | this.append(this.element(), [ |
118 | {tag:'h2', html:"Notes"}, | 115 | {tag:'h2', html:"Notes"}, |
119 | {tag:'fieldset', id:this.getId('fieldset'), children:[ | 116 | {tag:'fieldset', id:this.getId('fieldset'), children:[ |
120 | {tag:'div', cls:'row notes', children:[ | 117 | {tag:'div', cls:'row notes', children:[ |
121 | {tag:'span', html:someData['notes']} | 118 | {tag:'span', html:someData['notes']} |
122 | ]} | 119 | ]} |
123 | ]} | 120 | ]} |
124 | ]); | 121 | ]); |
125 | }; | 122 | }; |
126 | 123 | ||
127 | return true; | 124 | return true; |
128 | }, | 125 | }, |
129 | 126 | ||
130 | //------------------------------------------------------------------------- | 127 | //------------------------------------------------------------------------- |
131 | /* | 128 | /* |
132 | 'toggleClickHandler': function (anEvent) { | 129 | 'toggleClickHandler': function (anEvent) { |
133 | varnextState; | 130 | varnextState; |
134 | varfieldValue; | 131 | varfieldValue; |
135 | 132 | ||
136 | //console.log("TOGGLE"); | 133 | //console.log("TOGGLE"); |
137 | anEvent.preventDefault; | 134 | anEvent.preventDefault; |
138 | fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0]; | 135 | fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0]; |
139 | 136 | ||
140 | nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true'); | 137 | nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true'); |
141 | if (nextState) { | 138 | if (nextState) { |
142 | MochiKit.DOM.removeElementClass(fieldValue, 'clear'); | 139 | MochiKit.DOM.removeElementClass(fieldValue, 'clear'); |
143 | } else { | 140 | } else { |
144 | MochiKit.DOM.addElementClass(fieldValue, 'clear'); | 141 | MochiKit.DOM.addElementClass(fieldValue, 'clear'); |
145 | } | 142 | } |
146 | 143 | ||
147 | MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState); | 144 | MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState); |
148 | }, | 145 | }, |
149 | */ | 146 | */ |
150 | //========================================================================= | 147 | //========================================================================= |
151 | 148 | ||
152 | 'directLoginClickHandler': function (anEvent) { | 149 | 'directLoginClickHandler': function (anEvent) { |
153 | anEvent.preventDefault(); | 150 | anEvent.preventDefault(); |
154 | 151 | ||
155 | if (/(directLogin_)/.test(anEvent.src().id)) { | 152 | if (/(directLogin_)/.test(anEvent.src().id)) { |
156 | var directLoginReference; | 153 | var directLoginReference; |
157 | 154 | ||
158 | directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2]; | 155 | directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2]; |
159 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference}); | 156 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference}); |
160 | } | 157 | } |
161 | }, | 158 | }, |
162 | 159 | ||
163 | //========================================================================= | 160 | //========================================================================= |
164 | 161 | ||
165 | __syntaxFix__: "syntax fix" | 162 | __syntaxFix__: "syntax fix" |
166 | }); | 163 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js index 770f983..c3f2701 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js | |||
@@ -1,204 +1,201 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.CardList = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.CardList = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._cardDetail = null; | 33 | this._cardDetail = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.iPhone.Components.CardList component"; | 45 | return "Clipperz.PM.UI.iPhone.Components.CardList component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'renderSelf': function(/*aContainer, aPosition*/) { | 50 | 'renderSelf': function(/*aContainer, aPosition*/) { |
54 | this.append(this.element(), [ | 51 | this.append(this.element(), [ |
55 | {tag:'div', cls:'toolbar', id:'toolbar', children:[ | 52 | {tag:'div', cls:'toolbar', id:'toolbar', children:[ |
56 | {tag:'h1', id:'pageTitle', html:"cards"}, | 53 | {tag:'h1', id:'pageTitle', html:"cards"}, |
57 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"} | 54 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"} |
58 | ]}, | 55 | ]}, |
59 | {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[ | 56 | {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[ |
60 | {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[ | 57 | {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[ |
61 | {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')} | 58 | {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')} |
62 | ]}, | 59 | ]}, |
63 | {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]} | 60 | {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]} |
64 | ]}, | 61 | ]}, |
65 | {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')} | 62 | {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')} |
66 | ]); | 63 | ]); |
67 | 64 | ||
68 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this,'searchHandler'); | 65 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this,'searchHandler'); |
69 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this,'searchHandler'); | 66 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this,'searchHandler'); |
70 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this,'searchHandler'); | 67 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this,'searchHandler'); |
71 | 68 | ||
72 | MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this,'cardListClickHandler'); | 69 | MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this,'cardListClickHandler'); |
73 | MochiKit.Signal.connect('backButton', 'onclick', this,'backButtonClickHandler'); | 70 | MochiKit.Signal.connect('backButton', 'onclick', this,'backButtonClickHandler'); |
74 | 71 | ||
75 | MochiKit.Style.hideElement('backButton'); | 72 | MochiKit.Style.hideElement('backButton'); |
76 | MochiKit.Style.hideElement(this.getElement('cardDetail')); | 73 | MochiKit.Style.hideElement(this.getElement('cardDetail')); |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'searchHandler': function (anEvent) { | 78 | 'searchHandler': function (anEvent) { |
82 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN | 79 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN |
83 | anEvent.preventDefault(); | 80 | anEvent.preventDefault(); |
84 | } else { | 81 | } else { |
85 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { | 82 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { |
86 | anEvent.target().value = ""; | 83 | anEvent.target().value = ""; |
87 | } | 84 | } |
88 | 85 | ||
89 | if (anEvent.type() == 'keyup') { | 86 | if (anEvent.type() == 'keyup') { |
90 | MochiKit.Signal.signal(this, 'searchEvent', anEvent.target().value); | 87 | MochiKit.Signal.signal(this, 'searchEvent', anEvent.target().value); |
91 | } | 88 | } |
92 | } | 89 | } |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //------------------------------------------------------------------------- | 92 | //------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'update': function (someObjects) { | 94 | 'update': function (someObjects) { |
98 | varcardListPanel; | 95 | varcardListPanel; |
99 | var i,c; | 96 | var i,c; |
100 | 97 | ||
101 | cardListPanel = this.getElement('cardListPanel'); | 98 | cardListPanel = this.getElement('cardListPanel'); |
102 | cardListPanel.innerHTML = ''; | 99 | cardListPanel.innerHTML = ''; |
103 | 100 | ||
104 | c = someObjects.length; | 101 | c = someObjects.length; |
105 | 102 | ||
106 | for (i=0; i<c; i++) { | 103 | for (i=0; i<c; i++) { |
107 | this.append(cardListPanel, {tag:'li', cls:'cardListItem', id:('cardListItem_' + someObjects[i]['_reference']), children:[ | 104 | this.append(cardListPanel, {tag:'li', cls:'cardListItem', id:('cardListItem_' + someObjects[i]['_reference']), children:[ |
108 | {tag:'img', src:(someObjects[i]['favicon'] ? someObjects[i]['favicon'] : 'data:application/octet-stream;charset=utf-8;base64,AAABAAEAFxcAAAEAGAD8BgAAFgAAACgAAAAXAAAALgAAAAEAGAAAAAAAAAAAABIXAAASFwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////9zAC////////////////////////////////////////////////////////////////////////////////////////////9pAG////////////////////////////////////////////////////////////////////////////////////////////9rAC////////////////////////////////////////////////////////////////////////////////////////////9yAHP////////////////////////IyMizs7O6urrq6ur////////////Ozs6zs7Ozs7Pq6ur///////////////////////8AAAD////////////////////V1dWXl5eXl5eXl5elpaX4+Pj////Ozs6Xl5eXl5eXl5eenp7///////////////////////8AAAD////////////////////Ozs6Xl5eXl5eXl5eXl5fBwcHq6uqenp6Xl5eXl5eXl5eXl5f///////////////////////8AAAD////////////////////j4+OXl5eXl5eXl5eXl5eXl5elpaWXl5eXl5eXl5eXl5ezs7P///////////////////////8AAAD////////////////////////IyMiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eenp7x8fH////////////////////////////////////////////////////4+PilpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5fOzs7////////////////////////////////////////////////////////q6uq6urqXl5eXl5eXl5eXl5eXl5eXl5eenp7V1dX4+Pj///////////////////////8AAAD////////////4+PjOzs6lpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e6urrj4+P///////////////8AAAD////////////BwcGXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fx8fH///////////8AAAD///////////+zs7OXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fj4+P///////////8AAAD////////////IyMiXl5eXl5eXl5eXl5e6urqXl5eXl5eXl5eXl5esrKylpaWXl5eXl5eXl5eenp7x8fH///////////8AAAD////////////////Ozs7Ozs7V1dX4+Pj///+Xl5eXl5eXl5eXl5fOzs7////q6urOzs7Ozs7q6ur///////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD////////////////////////////////////IyMiXl5eXl5eenp7x8fH///////////////////////////////////8AAAD////////////////////////////////////////j4+Pj4+Px8fH///////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=')}, | 105 | {tag:'img', src:(someObjects[i]['favicon'] ? someObjects[i]['favicon'] : 'data:application/octet-stream;charset=utf-8;base64,AAABAAEAFxcAAAEAGAD8BgAAFgAAACgAAAAXAAAALgAAAAEAGAAAAAAAAAAAABIXAAASFwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////9zAC////////////////////////////////////////////////////////////////////////////////////////////9pAG////////////////////////////////////////////////////////////////////////////////////////////9rAC////////////////////////////////////////////////////////////////////////////////////////////9yAHP////////////////////////IyMizs7O6urrq6ur////////////Ozs6zs7Ozs7Pq6ur///////////////////////8AAAD////////////////////V1dWXl5eXl5eXl5elpaX4+Pj////Ozs6Xl5eXl5eXl5eenp7///////////////////////8AAAD////////////////////Ozs6Xl5eXl5eXl5eXl5fBwcHq6uqenp6Xl5eXl5eXl5eXl5f///////////////////////8AAAD////////////////////j4+OXl5eXl5eXl5eXl5eXl5elpaWXl5eXl5eXl5eXl5ezs7P///////////////////////8AAAD////////////////////////IyMiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eenp7x8fH////////////////////////////////////////////////////4+PilpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5fOzs7////////////////////////////////////////////////////////q6uq6urqXl5eXl5eXl5eXl5eXl5eXl5eenp7V1dX4+Pj///////////////////////8AAAD////////////4+PjOzs6lpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e6urrj4+P///////////////8AAAD////////////BwcGXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fx8fH///////////8AAAD///////////+zs7OXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fj4+P///////////8AAAD////////////IyMiXl5eXl5eXl5eXl5e6urqXl5eXl5eXl5eXl5esrKylpaWXl5eXl5eXl5eenp7x8fH///////////8AAAD////////////////Ozs7Ozs7V1dX4+Pj///+Xl5eXl5eXl5eXl5fOzs7////q6urOzs7Ozs7q6ur///////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD////////////////////////////////////IyMiXl5eXl5eenp7x8fH///////////////////////////////////8AAAD////////////////////////////////////////j4+Pj4+Px8fH///////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=')}, |
109 | {tag:'a', id:('cardListReference_' + someObjects[i]['_reference']), href:'#', html:someObjects[i]['label']} | 106 | {tag:'a', id:('cardListReference_' + someObjects[i]['_reference']), href:'#', html:someObjects[i]['label']} |
110 | ]}) | 107 | ]}) |
111 | 108 | ||
112 | MochiKit.Signal.connect('cardListItem_' + someObjects[i]['_reference'], 'onclick', this, 'cardListClickHandler'); | 109 | MochiKit.Signal.connect('cardListItem_' + someObjects[i]['_reference'], 'onclick', this, 'cardListClickHandler'); |
113 | } | 110 | } |
114 | 111 | ||
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'cardListClickHandler': function (anEvent) { | 114 | 'cardListClickHandler': function (anEvent) { |
118 | anEvent.preventDefault(); | 115 | anEvent.preventDefault(); |
119 | 116 | ||
120 | if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) { | 117 | if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) { |
121 | var cardListReference; | 118 | var cardListReference; |
122 | 119 | ||
123 | cardListReference = anEvent.target().id.match(/(cardListReference_|cardListItem_)(.*)/)[2]; | 120 | cardListReference = anEvent.target().id.match(/(cardListReference_|cardListItem_)(.*)/)[2]; |
124 | //console.log("Showing detail for card named", cardListReference); | 121 | //console.log("Showing detail for card named", cardListReference); |
125 | MochiKit.Signal.signal(this, 'selectedCard', cardListReference); | 122 | MochiKit.Signal.signal(this, 'selectedCard', cardListReference); |
126 | } | 123 | } |
127 | }, | 124 | }, |
128 | 125 | ||
129 | //========================================================================= | 126 | //========================================================================= |
130 | 127 | ||
131 | 'cardDetail': function (someData) { | 128 | 'cardDetail': function (someData) { |
132 | if (this._cardDetail == null) { | 129 | if (this._cardDetail == null) { |
133 | this._cardDetail = new Clipperz.PM.UI.iPhone.Components.CardDetail({element:this.getElement('cardDetail')}); | 130 | this._cardDetail = new Clipperz.PM.UI.iPhone.Components.CardDetail({element:this.getElement('cardDetail')}); |
134 | } | 131 | } |
135 | 132 | ||
136 | return this._cardDetail; | 133 | return this._cardDetail; |
137 | }, | 134 | }, |
138 | 135 | ||
139 | //------------------------------------------------------------------------- | 136 | //------------------------------------------------------------------------- |
140 | 137 | ||
141 | 'removeCardDetail': function () { | 138 | 'removeCardDetail': function () { |
142 | if (this._cardDetail != null) { | 139 | if (this._cardDetail != null) { |
143 | this._cardDetail.remove(); | 140 | this._cardDetail.remove(); |
144 | this._cardDetail = null; | 141 | this._cardDetail = null; |
145 | } | 142 | } |
146 | }, | 143 | }, |
147 | 144 | ||
148 | //========================================================================= | 145 | //========================================================================= |
149 | 146 | ||
150 | 'showCard': function (someData) { | 147 | 'showCard': function (someData) { |
151 | vardeferredResult; | 148 | vardeferredResult; |
152 | varoffset; | 149 | varoffset; |
153 | 150 | ||
154 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); | 151 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); |
155 | this.cardDetail().render(); | 152 | this.cardDetail().render(); |
156 | this.cardDetail().setCardReference(someData['_reference']); | 153 | this.cardDetail().setCardReference(someData['_reference']); |
157 | MochiKit.Style.setElementPosition(this.cardDetail().element(), {x:offset}); | 154 | MochiKit.Style.setElementPosition(this.cardDetail().element(), {x:offset}); |
158 | new MochiKit.Visual.Sequence([ | 155 | new MochiKit.Visual.Sequence([ |
159 | // new MochiKit.Visual.Move(this.cardDetail().element(), {x:offset, y:45, mode:'absolute', duration:0, sync:true}), | 156 | // new MochiKit.Visual.Move(this.cardDetail().element(), {x:offset, y:45, mode:'absolute', duration:0, sync:true}), |
160 | new MochiKit.Visual.Parallel([ | 157 | new MochiKit.Visual.Parallel([ |
161 | new MochiKit.Visual.Move(this.getElement('cardList'), {x:-offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 158 | new MochiKit.Visual.Move(this.getElement('cardList'), {x:-offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
162 | new MochiKit.Visual.Move(this.getElement('cardDetail'), {x:0, y:45, mode:'absolute',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 159 | new MochiKit.Visual.Move(this.getElement('cardDetail'), {x:0, y:45, mode:'absolute',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
163 | // new MochiKit.Visual.ScrollTo('toolbar', {sync:true}), | 160 | // new MochiKit.Visual.ScrollTo('toolbar', {sync:true}), |
164 | MochiKit.Visual.appear ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) | 161 | MochiKit.Visual.appear ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) |
165 | ], {duration:1, sync:true}), | 162 | ], {duration:1, sync:true}), |
166 | MochiKit.Visual.fade(this.getElement('cardList'), {duration:0, sync:true}) | 163 | MochiKit.Visual.fade(this.getElement('cardList'), {duration:0, sync:true}) |
167 | ], {}) | 164 | ], {}) |
168 | 165 | ||
169 | MochiKit.DOM.getElement('pageTitle').innerHTML = someData['title']; | 166 | MochiKit.DOM.getElement('pageTitle').innerHTML = someData['title']; |
170 | 167 | ||
171 | return true; | 168 | return true; |
172 | }, | 169 | }, |
173 | 170 | ||
174 | //------------------------------------------------------------------------- | 171 | //------------------------------------------------------------------------- |
175 | 172 | ||
176 | 'showCardDetails': function (someData) { | 173 | 'showCardDetails': function (someData) { |
177 | return this.cardDetail().showCardDetails(someData); | 174 | return this.cardDetail().showCardDetails(someData); |
178 | }, | 175 | }, |
179 | 176 | ||
180 | //========================================================================= | 177 | //========================================================================= |
181 | 178 | ||
182 | 'backButtonClickHandler': function (anEvent) { | 179 | 'backButtonClickHandler': function (anEvent) { |
183 | varoffset; | 180 | varoffset; |
184 | 181 | ||
185 | anEvent.preventDefault(); | 182 | anEvent.preventDefault(); |
186 | 183 | ||
187 | MochiKit.DOM.getElement('pageTitle').innerHTML = "cards"; | 184 | MochiKit.DOM.getElement('pageTitle').innerHTML = "cards"; |
188 | 185 | ||
189 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); | 186 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); |
190 | MochiKit.Style.setElementPosition(this.getElement('cardList'), {x:-offset}); | 187 | MochiKit.Style.setElementPosition(this.getElement('cardList'), {x:-offset}); |
191 | MochiKit.DOM.showElement(this.getElement('cardList')); | 188 | MochiKit.DOM.showElement(this.getElement('cardList')); |
192 | 189 | ||
193 | new MochiKit.Visual.Parallel([ | 190 | new MochiKit.Visual.Parallel([ |
194 | new MochiKit.Visual.Move(this.getElement('cardList'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 191 | new MochiKit.Visual.Move(this.getElement('cardList'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
195 | new MochiKit.Visual.Move(this.getElement('cardDetail'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 192 | new MochiKit.Visual.Move(this.getElement('cardDetail'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
196 | MochiKit.Visual.fade (this.getElement('cardDetail'), { transition:MochiKit.Visual.Transitions.linear, sync:true}), | 193 | MochiKit.Visual.fade (this.getElement('cardDetail'), { transition:MochiKit.Visual.Transitions.linear, sync:true}), |
197 | MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) | 194 | MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) |
198 | ], {duration:1, afterFinish:MochiKit.Base.method(this, 'removeCardDetail')}) | 195 | ], {duration:1, afterFinish:MochiKit.Base.method(this, 'removeCardDetail')}) |
199 | 196 | ||
200 | }, | 197 | }, |
201 | 198 | ||
202 | //========================================================================= | 199 | //========================================================================= |
203 | __syntaxFix__: "syntax fix" | 200 | __syntaxFix__: "syntax fix" |
204 | }); | 201 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js index eec83b0..5341878 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js | |||
@@ -1,181 +1,178 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.iPhone.Components.LoginForm component"; | 43 | return "Clipperz.PM.UI.iPhone.Components.LoginForm component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'focusOnUsername': function () { | 48 | 'focusOnUsername': function () { |
52 | this.getElement('username').focus(); | 49 | this.getElement('username').focus(); |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'username': function () { | 54 | 'username': function () { |
58 | return this.getElement('username').value; | 55 | return this.getElement('username').value; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'passphrase': function () { | 58 | 'passphrase': function () { |
62 | return this.getElement('passphrase').value; | 59 | return this.getElement('passphrase').value; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'renderSelf': function(/*aContainer, aPosition*/) { | 64 | 'renderSelf': function(/*aContainer, aPosition*/) { |
68 | this.append(this.element(), [ | 65 | this.append(this.element(), [ |
69 | {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[ | 66 | {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[ |
70 | {tag:'h1', id:'pageTitle', html:'Clipperz'}, | 67 | {tag:'h1', id:'pageTitle', html:'Clipperz'}, |
71 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"} | 68 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"} |
72 | ]}, | 69 | ]}, |
73 | {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[ | 70 | {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[ |
74 | {tag:'fieldset', id:this.getId('fieldset'), children:[ | 71 | {tag:'fieldset', id:this.getId('fieldset'), children:[ |
75 | {tag:'div', cls:'row', children:[ | 72 | {tag:'div', cls:'row', children:[ |
76 | {tag:'label', html:"username"}, | 73 | {tag:'label', html:"username"}, |
77 | {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')} | 74 | {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')} |
78 | ]}, | 75 | ]}, |
79 | {tag:'div', cls:'row', children:[ | 76 | {tag:'div', cls:'row', children:[ |
80 | {tag:'label', html:"passphrase"}, | 77 | {tag:'label', html:"passphrase"}, |
81 | {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')} | 78 | {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')} |
82 | ]} | 79 | ]} |
83 | ]}, | 80 | ]}, |
84 | {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')} | 81 | {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[ | 83 | {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[ |
87 | {tag:'div', id:this.getId('progressBar')} //, | 84 | {tag:'div', id:this.getId('progressBar')} //, |
88 | // {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')} | 85 | // {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')} |
89 | ]}, | 86 | ]}, |
90 | {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[ | 87 | {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[ |
91 | {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[ | 88 | {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[ |
92 | {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"} | 89 | {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"} |
93 | ]} | 90 | ]} |
94 | ]} | 91 | ]} |
95 | ]); | 92 | ]); |
96 | 93 | ||
97 | MochiKit.Signal.connect(this.getElement('submit'), 'onclick',this, 'submitHandler'); | 94 | MochiKit.Signal.connect(this.getElement('submit'), 'onclick',this, 'submitHandler'); |
98 | MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit',this, 'submitHandler'); | 95 | MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit',this, 'submitHandler'); |
99 | 96 | ||
100 | // MochiKit.Signal.connect(this.getElement('cancel'), 'onclick',this, 'cancelHandler'); | 97 | // MochiKit.Signal.connect(this.getElement('cancel'), 'onclick',this, 'cancelHandler'); |
101 | MochiKit.Signal.connect('backButton', 'onclick',this, 'backHandler'); | 98 | MochiKit.Signal.connect('backButton', 'onclick',this, 'backHandler'); |
102 | 99 | ||
103 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 100 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
104 | 101 | ||
105 | // MochiKit.Style.hideElement(this.getElement('errorMessage')); | 102 | // MochiKit.Style.hideElement(this.getElement('errorMessage')); |
106 | 103 | ||
107 | this.showLoginForm(); | 104 | this.showLoginForm(); |
108 | // MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername')); | 105 | // MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername')); |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //------------------------------------------------------------------------- | 108 | //------------------------------------------------------------------------- |
112 | 109 | ||
113 | 'showLoginForm': function () { | 110 | 'showLoginForm': function () { |
114 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); | 111 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); |
115 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); | 112 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); |
116 | MochiKit.Style.hideElement(this.getElement('loginErrorPanel')); | 113 | MochiKit.Style.hideElement(this.getElement('loginErrorPanel')); |
117 | MochiKit.Style.hideElement('backButton'); | 114 | MochiKit.Style.hideElement('backButton'); |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'slideInLoginForm': function () { | 117 | 'slideInLoginForm': function () { |
121 | varoffset; | 118 | varoffset; |
122 | 119 | ||
123 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); | 120 | offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480); |
124 | 121 | ||
125 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); | 122 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); |
126 | MochiKit.Style.setElementPosition(this.getElement('loginFormPanel'), {x:-offset, y:0}); | 123 | MochiKit.Style.setElementPosition(this.getElement('loginFormPanel'), {x:-offset, y:0}); |
127 | 124 | ||
128 | new MochiKit.Visual.Sequence([ | 125 | new MochiKit.Visual.Sequence([ |
129 | new MochiKit.Visual.Parallel([ | 126 | new MochiKit.Visual.Parallel([ |
130 | new MochiKit.Visual.Move(this.getElement('loginErrorPanel'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 127 | new MochiKit.Visual.Move(this.getElement('loginErrorPanel'), {x:offset, y:0, mode:'relative',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
131 | new MochiKit.Visual.Move(this.getElement('loginFormPanel'), {x:0, y:0, mode:'absolute',transition:MochiKit.Visual.Transitions.linear, sync:true}), | 128 | new MochiKit.Visual.Move(this.getElement('loginFormPanel'), {x:0, y:0, mode:'absolute',transition:MochiKit.Visual.Transitions.linear, sync:true}), |
132 | MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) | 129 | MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true}) |
133 | ], {duration:0.5, sync:true}), | 130 | ], {duration:0.5, sync:true}), |
134 | MochiKit.Visual.fade(this.getElement('loginErrorPanel'), {duration:0, sync:true}) | 131 | MochiKit.Visual.fade(this.getElement('loginErrorPanel'), {duration:0, sync:true}) |
135 | ], {}) | 132 | ], {}) |
136 | }, | 133 | }, |
137 | 134 | ||
138 | 'showLoginProgress': function () { | 135 | 'showLoginProgress': function () { |
139 | MochiKit.Style.hideElement(this.getElement('loginFormPanel')); | 136 | MochiKit.Style.hideElement(this.getElement('loginFormPanel')); |
140 | MochiKit.Style.showElement(this.getElement('loginProgressPanel')); | 137 | MochiKit.Style.showElement(this.getElement('loginProgressPanel')); |
141 | }, | 138 | }, |
142 | 139 | ||
143 | 'showLoginError': function (anError) { | 140 | 'showLoginError': function (anError) { |
144 | this.getElement('errorMessage').innerHTML = "Login error"; | 141 | this.getElement('errorMessage').innerHTML = "Login error"; |
145 | 142 | ||
146 | MochiKit.Style.showElement('backButton'); | 143 | MochiKit.Style.showElement('backButton'); |
147 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); | 144 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); |
148 | MochiKit.Style.showElement(this.getElement('loginErrorPanel')); | 145 | MochiKit.Style.showElement(this.getElement('loginErrorPanel')); |
149 | MochiKit.Style.setElementPosition(this.getElement('loginErrorPanel'), {x:0, y:45}); | 146 | MochiKit.Style.setElementPosition(this.getElement('loginErrorPanel'), {x:0, y:45}); |
150 | }, | 147 | }, |
151 | 148 | ||
152 | //------------------------------------------------------------------------- | 149 | //------------------------------------------------------------------------- |
153 | /* | 150 | /* |
154 | 'disableCancelButton': function () { | 151 | 'disableCancelButton': function () { |
155 | MochiKit.DOM.hideElement(this.getElement('cancel')); | 152 | MochiKit.DOM.hideElement(this.getElement('cancel')); |
156 | }, | 153 | }, |
157 | */ | 154 | */ |
158 | //------------------------------------------------------------------------- | 155 | //------------------------------------------------------------------------- |
159 | 156 | ||
160 | 'submitHandler': function (anEvent) { | 157 | 'submitHandler': function (anEvent) { |
161 | anEvent.preventDefault(); | 158 | anEvent.preventDefault(); |
162 | 159 | ||
163 | MochiKit.Signal.signal(this, 'doLogin', {'username':this.username(), 'passphrase':this.passphrase()}); | 160 | MochiKit.Signal.signal(this, 'doLogin', {'username':this.username(), 'passphrase':this.passphrase()}); |
164 | }, | 161 | }, |
165 | 162 | ||
166 | 'cancelHandler': function (anEvent) { | 163 | 'cancelHandler': function (anEvent) { |
167 | anEvent.preventDefault(); | 164 | anEvent.preventDefault(); |
168 | 165 | ||
169 | //console.log("CANCEL"); | 166 | //console.log("CANCEL"); |
170 | }, | 167 | }, |
171 | 168 | ||
172 | 'backHandler': function (anEvent) { | 169 | 'backHandler': function (anEvent) { |
173 | anEvent.preventDefault(); | 170 | anEvent.preventDefault(); |
174 | 171 | ||
175 | this.slideInLoginForm(); | 172 | this.slideInLoginForm(); |
176 | }, | 173 | }, |
177 | 174 | ||
178 | //------------------------------------------------------------------------- | 175 | //------------------------------------------------------------------------- |
179 | 176 | ||
180 | __syntaxFix__: "syntax fix" | 177 | __syntaxFix__: "syntax fix" |
181 | }); | 178 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js index b43d877..3fcaae1 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js | |||
@@ -1,216 +1,213 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers'); |
30 | 27 | ||
31 | //Some parts of this controller have been derived from the iUI library. | 28 | //Some parts of this controller have been derived from the iUI library. |
32 | 29 | ||
33 | Clipperz.PM.UI.iPhone.Controllers.MainController = function() { | 30 | Clipperz.PM.UI.iPhone.Controllers.MainController = function() { |
34 | this._loginForm = null; | 31 | this._loginForm = null; |
35 | this._cardList = null; | 32 | this._cardList = null; |
36 | this._cachedValues =null; | 33 | this._cachedValues =null; |
37 | this._user = null; | 34 | this._user = null; |
38 | 35 | ||
39 | if (typeof window.onorientationchange == 'object') { | 36 | if (typeof window.onorientationchange == 'object') { |
40 | MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler'); | 37 | MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler'); |
41 | MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler')); | 38 | MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler')); |
42 | } else { | 39 | } else { |
43 | this.setOrientation('portrait'); | 40 | this.setOrientation('portrait'); |
44 | // this.setOrientation('landscape'); | 41 | // this.setOrientation('landscape'); |
45 | } | 42 | } |
46 | 43 | ||
47 | this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'); | 44 | this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'); |
48 | this.addMetaTag('apple-mobile-web-app-capable', 'yes'); | 45 | this.addMetaTag('apple-mobile-web-app-capable', 'yes'); |
49 | this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black'); | 46 | this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black'); |
50 | 47 | ||
51 | this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABfCAYAAACOTBv1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAQC0lEQVR4nO2ce3wU1b3AvzOzz2TzBpKQhIS3CnLxgYoPqAgiQS8igiAqiFprtT571YpKUa9tvVgrVvhc7IXS4lUUvGgR5CWIoiAIYoQgJGDI+0k2yW42szNz7h8pGBHIPmazqeb7+UD4DHt+vzPfPTnnzJkzIwGCLqKCHO0K/JTpkh9FuuRHkS75UaRLfhTpkh9FuuRHkS75UaRLfhTpkh9FLNGuwKnIzc3l9WXLQAIhQILWvwQnjn3vUNtjkoQQ4kSZr77KY+TIkR1/EgHQKeWnp6eTkJiI0P2gqyeOnxD7T+ttxf/wp4SwOOnTp0/UzqM9OqV8oFXygSVIm3/xvePSKf59up/cWfO9z3c2OnmfH646qVMv2XZa+RKtrT8cWruoztv2O6384/15OLSODZ237Xda+W1nMKEiROe+U9Rp5ZtFJ+51Oq/8E/P7MOjE3oFOLL/1Iik8fUJoCF03pT6RoNPKF4Q/2zF0P0J0yQ8aM/pqoesIXQs/UITotPKFYRDuXMXQ/dDV8oNECIShgRGmOKFjGIY5dYoAnVK+QCB0DSNM+Ybmb/0SOylhy8/NzWXYsGFm1OU7hGhd0RThtdrW2Y758kdcdhGLX30h7Dhhr2ouWrSI9PQ0ykrLeHn+fBYsWIDX6w0zqsAwNOQwW77QtbBnTMdJSkzgkfvuZPqkXOJi7SAMLhl2Htt37gk5ZlgtPycnh7TU7oiGo6TH6zz/3DPUVpXz3qp3+Lch54YeWLR2OyLcbkcPf9wY/bNL2fjuMg7uWM09t11PnE1FaSwADB65746wYofV8ufMeQph6MhfvoT09atIWWORBt7GNaOv5urRWyktLeWll//MXxb/FZ/PF3BcgcDQVeRwux1DQxjBz1m7JSfx2IM/Z/J1Y3A5LUiShFK3G3vpWuwVW9Bjs6i/eCGXnjcgrPqF1fJzrxkLuopUuAJJGMhH12LZMA3LG2ej7JxDZmwT//W7uVSVFPDW/y5l4ID+gQUWAmHo4V8g6VrAA64kSYwfM5It//g7+z9Zye2TxxJPDY7CpSRsnUrCzgdwlH2AZPiwNB5CajyMYqjkjhkRcvVCbvnnnzeUBJcDUbIFyVv+/RNprsKSNx/y5mP0uAS53zSuvWoc48duoqi4lD++vIC/vb4cVVVPHVyA0P1hLw0Yhh/EmU8xtXsyv3noHiaMu5xYmwXJ8GMr34ijfB3Wut2nvR3jKN9EU850fnXHNNZs2BpS/UKW/+QTj4GhIxe+fcbPyVXbsVVtR1ifRMueQE7fKbz0u6f5/dzfsGb9JuY8+wJHiopPKmXObAdDwzhFtyPLMhPGjeKRe2cyIDsVCYHiPoCjcB32qi3Imqfd0PaqrTRmTWFw31QURUbXg69ryPKvuOxihN+LXLQ6oM9L/kasBcuwFixDTzwbS+8buf6q8UwYu4bDR8t4cf5/8+bK99C01hmKOfP87/f5PdO6M/vhX3DdmOHYLTKyWo/92zdxlm/A4j0aVGyLrxzFfQDD1ZdpE8exbMX7QdcvJPmjR/2MWJuCVLIBSXUHXV6pz0fZ8yz2vS+gZYymX/ZEXvnDbOY99yjvrd1CwZFiU65wDd0PhsTUieN44O7p9E5PQhI6trrPcJavx1a7E4nQf7uc1Z/gj8nmjptCk39860tQrFu9ksuGDcX+6f1YioNPeir0mEzUrOtQs65FtyYhSWA7uorYr0O/mKm5/C0MJRYhDBRPEc6KjTirNiP7g28wp6yzNZHywfMQsoUBo+7C1+IPqnxILf+ioYMRaj1K2aZQip8SxVuC85uFOA4uwt/9EloyxkOYSwNSyzEcdRtxVm7C2lRoUk2/Q/HXY2vYj881kLumX88ri888/p1M0PKnTr4BRfKjHN2ApAc+dw8USejYqrZhq9qGkJSwYiXv+iVShFc1nXXbaXb2Ydq1VwQtP+h5/r13zUAYOpbiwAbacAhXXKTFA8S492BoPlLjBPGumKDKBiVfURQG9ctCeKuxVH0WVKIfK4rRjLMhD8lQeWDWpKDKBiX/njtngFCxlK7rkFb1r4KrYTeG5ue6kcGtZwUlf8bUCWBo2ErWBZXkx06MJx+hNZFg8dCzR1LA5QKWH+N0kpOeCJ4yLPVfhVTJHyuy0HA17Qeh8+Cs6wMvF+gHH77vTjA0JG85emx2SJX8saLJsaA3I3Q/V52fE3C5gKeaY6+6AmH4UV39qRu2EMVThL1qK47qj7F4S0Kp8780ftlFo3MATc6z8Fp6Ht/ZS0xiMg6bFZ/a/gVXwFe4TqeTqVMmMevm6zk7pwea9xhCGCAEFk8RjpptOGo/xdJcFuZpdV78sotGxwAanQNptvZEIJAkGUtiDnuLmnht+Xo2bNoS8E37kJYXYmNjmXbTjcy8aTwDMpLRmmtb1+CFQPEcIaZuB87a7VhaKoMN3enwy3E0OgfQYO9PsyWt1ZikYEnKIa+oidfe2sj6jZtD2iURkvy2uFwupk+9kRmTc+mT7kLz1CAMAQgsniPEHNtJzLGdWNTqcNJ0KKoST6O9Pw2O/visaQjDQJJlrEl9+KrYy+IVm/hg/YfoYd5vCFt+W+Lj47ll2mRuvWE02d0crV+EECAMbN4iYty7iKnfjcVfa1ZK01CVBBrs/Wi098dnTUUIA0lubeH7in0sXrmZNes2hi28LabKb0tCQgIzpk/h5glXkpko//OLaB0jbM1FxLh3E9uwF6t2LBLpA0JVEmiw9afB3heftUfrLjlZxprUm/wylSXvbOH9DzaiaZHZ+xMx+W1JSkpi5i1TuGn85fSMF2hNVSe6JntzEbGNe3E15WHRzFnqPRMtSiIN9n402Pris3RrHasAW3IfDlT4WfLOVlav3RAx4W3pEPltSUlJYdYtU5g8bjipMS2oDa2DclzDLlJrVkU0twCK4q7DY81AIGFP6UN+ucZfV33M6rUb8PuDW48Plw6X35aZU3J5YvowbGoVWRWvIYvItzZNclIQNxHVlsK4B/5OWXV9xHOejqjt1UzvkcRj04eD5iWtenmHiAewiGYyPZsQ3jqWzp2CIkdvu2pUMsuyxMo/3Y+keehRtxq7Vteh+V16Janql6RY3Lz48IQOzd2WqMh/dc7PSbJ6iG/cSUJzfjSqQKq2D5dWyuV9YPKYoVGpQ4fLv/Ga4YwY6MTmKyO1YUtHpz+BBORon2PVm3h0Yj/6ZAS+FGwWHSo/My2FObMuR9K8ZLjfRya6N2SsqPQWu8DvZsmjY3DYwrtnHCwdJl+WJd78w+2gNtKzaSN2I/Jz+kCI4xgZ4iBOo4ZFj4/v0NwdJn/h0zOJl9wkN+8lQT0cdjyBRAtOE2oGaVIRcUYF/WJr+NVkkx/0OAMdIn/KuEu4OBuc/nLSmneYErNc6k8hF2CY8KizJEFfy0FseJk2zMqFZ6WaUMP2ibj8XunJzJ42FFn3kOXdjBzG9rzjeIinzMjBI2IpNQLcdt4OVkljgO0QQvXw4syBxDkj3/9HVL4iyyx75iaMlnqyfNuwi/Z3/7aHISQO62cj2eOxxCRTbvTEbSSaUFuIUzxk24qR1RqWPnpFxF8XE1H5C2ZPxWXU0K1lP4lGqSkxS4zeeA0HGwqd/N8+G8IwKFD7429nH36gZDjqSJLrSDaKmDvjfFNino6IyZ86bhgXpHtxalVkGHmmxGw04inX0tESB/HEvGU8+6eluBOGoxoShS05puQAGOiqxI6XKzIqGHdRpmlxTyYi8nN6JvPrCX1QdC+99R2mvGxLFzIFLb2R7XHc+8cNJ54yvPnx17B0P4taNZZyNSXsPAAWWXBOQi3oXv7jaomMFLspcU/GdPkWRWbp7FyE6ibH2IMdczbTFqkZeDWZLSUp7N136MTx2to65r5xGMUWw2FPCh7dZkq+eJtG3zg3oqWEhXenYY3A+Gu6/AWPT8ShVtDDKCBRMue+bb3mosyXgEgewuPz3vjB/7+/8RN2egah6xr57m4YwpyBMivOoLsDnL6jvDjLnFlVW0yVf8v4CxmSXItL1JIlFZgSUxMyhzypWOxxPLjgs9PuEnjouSWQOQqPJlHYGGdKboCzUwQOBAMdBdx2lbn9v2ny+2amcN+YZBTdSz9ln2mv1zrs6YZPk9hWm80XeQdP+zld15n5n+uwJedQ0iRT4zOnn7DIMCQNEIKbB9UwqFesKXHBRPnzf/3vGC1udF3jmBZvSszaFgflXgei+1Aem9f+gwdHior5y45YJFmQX2vQYsK6nRBQ3dT6eJhQVZ672bzuxzT5D/75I6SMK9ENQaEvk2+8vdBE6OH9hsQ37ngUu5NH/+frgLdsLF6+nrKECbSosK86vDcUtmiwq0jiYIWEoUnY++by9HvhXygexzT5hwoOM+L2F9mnjES2u6huiWFPQ28aNEdI8Q7Wx9Ki+dnlGcyOPQeCKnvnb9/Gnn0NtR6ZohBv0dY0wceHJKobQFJiqO11K7lPbSRv/6H2CweIAvzWrGCGYfCPjds5ZhvAqGF98R4roaI5BgmDeKsa8DhQ6VU44jawpF3ILXM3BL0VT9M08sqtjD03luraerq7wB7gBbAQcLAS8opB80s4087hrbLBPPXKO6ZvJzFV/nHyDx7m3c+rmXDDJOT6/dSrFtwtFpLtLSjt/K6pOnxZJZBsCcxeBUUlVSHVoayyhoxBo+glDlHnEWQmgtzOl+9TYddhiZJaCYSM45wJ3Pu3YjZ8/EVIdWiPiC0vVFZWcvVd8/nUPxqrqzt1PoMdlQ5qfWdOub9Gwq9J7NNHsG1XcN3NyTy/8B18fabS2Az729k8XemGj/KhpkFCtrqoyJrO+CfX8E3Bt2HV4Ux0yL6dEZdewO9vTaO5cC1CCHrFCfom/bAlljbA/moJS/pljH1qhymbmJKTk1j50CCaDm/jwt6CtJMWQA0D8kuhsEJCGODKOpcl+d14/d0Pw87dHhHpdk6mqLicFZ9Ucc3E27A35lPv1anxQrKTE5ftPj98WS6BEscz66wcKTZne3lzs48q0rm0ZwsV1V4yUr7L6W2B7QehvFYCAc5zJ3H3kkNs3bHXlNzt0WG3Ed1uNzfcv4j368fh6H4Obi98+i2UN7QOcnnlEqoKB61XsvXz/abmXrt5B/tixtCiSuwuaM1XVgeb86DeI6M4Ezjaazrjn1zFkaKOe8omKtsFzx00kFd/eR6evOUgQYJdUN8sYc+8hHHPfnH69/CEgaIorHl+Es1fvU2yS3DMIyOEIC7nfBbujmXF2tDemRMOUdur6XA4WPDUbWRVr0D11CNbY5i3pzebPjNn7f9U9M7O5LWpyTSV5CFJYB08hbvmf0RpWUXEcp6JDunzT4Wmabz74ReIjBEMH9iNQwzhleWRbX317gbktCGcn6ZzICGX2597i4aGxojmbA8R7T/ZvTKF3W7rsHwDB/SL+jkDIqpbxH/qdMrX+f5U6JIfRbrkR5Eu+VGkS34U6ZIfRbrkR5Eu+VGkS34U6ZIfRbrkR5H/Bx8z6HmTXnicAAAAAElFTkSuQmCCCg=='); | 48 | this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABfCAYAAACOTBv1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAQC0lEQVR4nO2ce3wU1b3AvzOzz2TzBpKQhIS3CnLxgYoPqAgiQS8igiAqiFprtT571YpKUa9tvVgrVvhc7IXS4lUUvGgR5CWIoiAIYoQgJGDI+0k2yW42szNz7h8pGBHIPmazqeb7+UD4DHt+vzPfPTnnzJkzIwGCLqKCHO0K/JTpkh9FuuRHkS75UaRLfhTpkh9FuuRHkS75UaRLfhTpkh9FLNGuwKnIzc3l9WXLQAIhQILWvwQnjn3vUNtjkoQQ4kSZr77KY+TIkR1/EgHQKeWnp6eTkJiI0P2gqyeOnxD7T+ttxf/wp4SwOOnTp0/UzqM9OqV8oFXygSVIm3/xvePSKf59up/cWfO9z3c2OnmfH646qVMv2XZa+RKtrT8cWruoztv2O6384/15OLSODZ237Xda+W1nMKEiROe+U9Rp5ZtFJ+51Oq/8E/P7MOjE3oFOLL/1Iik8fUJoCF03pT6RoNPKF4Q/2zF0P0J0yQ8aM/pqoesIXQs/UITotPKFYRDuXMXQ/dDV8oNECIShgRGmOKFjGIY5dYoAnVK+QCB0DSNM+Ybmb/0SOylhy8/NzWXYsGFm1OU7hGhd0RThtdrW2Y758kdcdhGLX30h7Dhhr2ouWrSI9PQ0ykrLeHn+fBYsWIDX6w0zqsAwNOQwW77QtbBnTMdJSkzgkfvuZPqkXOJi7SAMLhl2Htt37gk5ZlgtPycnh7TU7oiGo6TH6zz/3DPUVpXz3qp3+Lch54YeWLR2OyLcbkcPf9wY/bNL2fjuMg7uWM09t11PnE1FaSwADB65746wYofV8ufMeQph6MhfvoT09atIWWORBt7GNaOv5urRWyktLeWll//MXxb/FZ/PF3BcgcDQVeRwux1DQxjBz1m7JSfx2IM/Z/J1Y3A5LUiShFK3G3vpWuwVW9Bjs6i/eCGXnjcgrPqF1fJzrxkLuopUuAJJGMhH12LZMA3LG2ej7JxDZmwT//W7uVSVFPDW/y5l4ID+gQUWAmHo4V8g6VrAA64kSYwfM5It//g7+z9Zye2TxxJPDY7CpSRsnUrCzgdwlH2AZPiwNB5CajyMYqjkjhkRcvVCbvnnnzeUBJcDUbIFyVv+/RNprsKSNx/y5mP0uAS53zSuvWoc48duoqi4lD++vIC/vb4cVVVPHVyA0P1hLw0Yhh/EmU8xtXsyv3noHiaMu5xYmwXJ8GMr34ijfB3Wut2nvR3jKN9EU850fnXHNNZs2BpS/UKW/+QTj4GhIxe+fcbPyVXbsVVtR1ifRMueQE7fKbz0u6f5/dzfsGb9JuY8+wJHiopPKmXObAdDwzhFtyPLMhPGjeKRe2cyIDsVCYHiPoCjcB32qi3Imqfd0PaqrTRmTWFw31QURUbXg69ryPKvuOxihN+LXLQ6oM9L/kasBcuwFixDTzwbS+8buf6q8UwYu4bDR8t4cf5/8+bK99C01hmKOfP87/f5PdO6M/vhX3DdmOHYLTKyWo/92zdxlm/A4j0aVGyLrxzFfQDD1ZdpE8exbMX7QdcvJPmjR/2MWJuCVLIBSXUHXV6pz0fZ8yz2vS+gZYymX/ZEXvnDbOY99yjvrd1CwZFiU65wDd0PhsTUieN44O7p9E5PQhI6trrPcJavx1a7E4nQf7uc1Z/gj8nmjptCk39860tQrFu9ksuGDcX+6f1YioNPeir0mEzUrOtQs65FtyYhSWA7uorYr0O/mKm5/C0MJRYhDBRPEc6KjTirNiP7g28wp6yzNZHywfMQsoUBo+7C1+IPqnxILf+ioYMRaj1K2aZQip8SxVuC85uFOA4uwt/9EloyxkOYSwNSyzEcdRtxVm7C2lRoUk2/Q/HXY2vYj881kLumX88ri888/p1M0PKnTr4BRfKjHN2ApAc+dw8USejYqrZhq9qGkJSwYiXv+iVShFc1nXXbaXb2Ydq1VwQtP+h5/r13zUAYOpbiwAbacAhXXKTFA8S492BoPlLjBPGumKDKBiVfURQG9ctCeKuxVH0WVKIfK4rRjLMhD8lQeWDWpKDKBiX/njtngFCxlK7rkFb1r4KrYTeG5ue6kcGtZwUlf8bUCWBo2ErWBZXkx06MJx+hNZFg8dCzR1LA5QKWH+N0kpOeCJ4yLPVfhVTJHyuy0HA17Qeh8+Cs6wMvF+gHH77vTjA0JG85emx2SJX8saLJsaA3I3Q/V52fE3C5gKeaY6+6AmH4UV39qRu2EMVThL1qK47qj7F4S0Kp8780ftlFo3MATc6z8Fp6Ht/ZS0xiMg6bFZ/a/gVXwFe4TqeTqVMmMevm6zk7pwea9xhCGCAEFk8RjpptOGo/xdJcFuZpdV78sotGxwAanQNptvZEIJAkGUtiDnuLmnht+Xo2bNoS8E37kJYXYmNjmXbTjcy8aTwDMpLRmmtb1+CFQPEcIaZuB87a7VhaKoMN3enwy3E0OgfQYO9PsyWt1ZikYEnKIa+oidfe2sj6jZtD2iURkvy2uFwupk+9kRmTc+mT7kLz1CAMAQgsniPEHNtJzLGdWNTqcNJ0KKoST6O9Pw2O/visaQjDQJJlrEl9+KrYy+IVm/hg/YfoYd5vCFt+W+Lj47ll2mRuvWE02d0crV+EECAMbN4iYty7iKnfjcVfa1ZK01CVBBrs/Wi098dnTUUIA0lubeH7in0sXrmZNes2hi28LabKb0tCQgIzpk/h5glXkpko//OLaB0jbM1FxLh3E9uwF6t2LBLpA0JVEmiw9afB3heftUfrLjlZxprUm/wylSXvbOH9DzaiaZHZ+xMx+W1JSkpi5i1TuGn85fSMF2hNVSe6JntzEbGNe3E15WHRzFnqPRMtSiIN9n402Pris3RrHasAW3IfDlT4WfLOVlav3RAx4W3pEPltSUlJYdYtU5g8bjipMS2oDa2DclzDLlJrVkU0twCK4q7DY81AIGFP6UN+ucZfV33M6rUb8PuDW48Plw6X35aZU3J5YvowbGoVWRWvIYvItzZNclIQNxHVlsK4B/5OWXV9xHOejqjt1UzvkcRj04eD5iWtenmHiAewiGYyPZsQ3jqWzp2CIkdvu2pUMsuyxMo/3Y+keehRtxq7Vteh+V16Janql6RY3Lz48IQOzd2WqMh/dc7PSbJ6iG/cSUJzfjSqQKq2D5dWyuV9YPKYoVGpQ4fLv/Ga4YwY6MTmKyO1YUtHpz+BBORon2PVm3h0Yj/6ZAS+FGwWHSo/My2FObMuR9K8ZLjfRya6N2SsqPQWu8DvZsmjY3DYwrtnHCwdJl+WJd78w+2gNtKzaSN2I/Jz+kCI4xgZ4iBOo4ZFj4/v0NwdJn/h0zOJl9wkN+8lQT0cdjyBRAtOE2oGaVIRcUYF/WJr+NVkkx/0OAMdIn/KuEu4OBuc/nLSmneYErNc6k8hF2CY8KizJEFfy0FseJk2zMqFZ6WaUMP2ibj8XunJzJ42FFn3kOXdjBzG9rzjeIinzMjBI2IpNQLcdt4OVkljgO0QQvXw4syBxDkj3/9HVL4iyyx75iaMlnqyfNuwi/Z3/7aHISQO62cj2eOxxCRTbvTEbSSaUFuIUzxk24qR1RqWPnpFxF8XE1H5C2ZPxWXU0K1lP4lGqSkxS4zeeA0HGwqd/N8+G8IwKFD7429nH36gZDjqSJLrSDaKmDvjfFNino6IyZ86bhgXpHtxalVkGHmmxGw04inX0tESB/HEvGU8+6eluBOGoxoShS05puQAGOiqxI6XKzIqGHdRpmlxTyYi8nN6JvPrCX1QdC+99R2mvGxLFzIFLb2R7XHc+8cNJ54yvPnx17B0P4taNZZyNSXsPAAWWXBOQi3oXv7jaomMFLspcU/GdPkWRWbp7FyE6ibH2IMdczbTFqkZeDWZLSUp7N136MTx2to65r5xGMUWw2FPCh7dZkq+eJtG3zg3oqWEhXenYY3A+Gu6/AWPT8ShVtDDKCBRMue+bb3mosyXgEgewuPz3vjB/7+/8RN2egah6xr57m4YwpyBMivOoLsDnL6jvDjLnFlVW0yVf8v4CxmSXItL1JIlFZgSUxMyhzypWOxxPLjgs9PuEnjouSWQOQqPJlHYGGdKboCzUwQOBAMdBdx2lbn9v2ny+2amcN+YZBTdSz9ln2mv1zrs6YZPk9hWm80XeQdP+zld15n5n+uwJedQ0iRT4zOnn7DIMCQNEIKbB9UwqFesKXHBRPnzf/3vGC1udF3jmBZvSszaFgflXgei+1Aem9f+gwdHior5y45YJFmQX2vQYsK6nRBQ3dT6eJhQVZ672bzuxzT5D/75I6SMK9ENQaEvk2+8vdBE6OH9hsQ37ngUu5NH/+frgLdsLF6+nrKECbSosK86vDcUtmiwq0jiYIWEoUnY++by9HvhXygexzT5hwoOM+L2F9mnjES2u6huiWFPQ28aNEdI8Q7Wx9Ki+dnlGcyOPQeCKnvnb9/Gnn0NtR6ZohBv0dY0wceHJKobQFJiqO11K7lPbSRv/6H2CweIAvzWrGCGYfCPjds5ZhvAqGF98R4roaI5BgmDeKsa8DhQ6VU44jawpF3ILXM3BL0VT9M08sqtjD03luraerq7wB7gBbAQcLAS8opB80s4087hrbLBPPXKO6ZvJzFV/nHyDx7m3c+rmXDDJOT6/dSrFtwtFpLtLSjt/K6pOnxZJZBsCcxeBUUlVSHVoayyhoxBo+glDlHnEWQmgtzOl+9TYddhiZJaCYSM45wJ3Pu3YjZ8/EVIdWiPiC0vVFZWcvVd8/nUPxqrqzt1PoMdlQ5qfWdOub9Gwq9J7NNHsG1XcN3NyTy/8B18fabS2Az729k8XemGj/KhpkFCtrqoyJrO+CfX8E3Bt2HV4Ux0yL6dEZdewO9vTaO5cC1CCHrFCfom/bAlljbA/moJS/pljH1qhymbmJKTk1j50CCaDm/jwt6CtJMWQA0D8kuhsEJCGODKOpcl+d14/d0Pw87dHhHpdk6mqLicFZ9Ucc3E27A35lPv1anxQrKTE5ftPj98WS6BEscz66wcKTZne3lzs48q0rm0ZwsV1V4yUr7L6W2B7QehvFYCAc5zJ3H3kkNs3bHXlNzt0WG3Ed1uNzfcv4j368fh6H4Obi98+i2UN7QOcnnlEqoKB61XsvXz/abmXrt5B/tixtCiSuwuaM1XVgeb86DeI6M4Ezjaazrjn1zFkaKOe8omKtsFzx00kFd/eR6evOUgQYJdUN8sYc+8hHHPfnH69/CEgaIorHl+Es1fvU2yS3DMIyOEIC7nfBbujmXF2tDemRMOUdur6XA4WPDUbWRVr0D11CNbY5i3pzebPjNn7f9U9M7O5LWpyTSV5CFJYB08hbvmf0RpWUXEcp6JDunzT4Wmabz74ReIjBEMH9iNQwzhleWRbX317gbktCGcn6ZzICGX2597i4aGxojmbA8R7T/ZvTKF3W7rsHwDB/SL+jkDIqpbxH/qdMrX+f5U6JIfRbrkR5Eu+VGkS34U6ZIfRbrkR5Eu+VGkS34U6ZIfRbrkR5H/Bx8z6HmTXnicAAAAAElFTkSuQmCCCg=='); |
52 | //this.addLinkTag('apple-touch-startup-image', 'default.png'); | 49 | //this.addLinkTag('apple-touch-startup-image', 'default.png'); |
53 | 50 | ||
54 | // if (!window.navigator.standalone)// not running as an installed app | 51 | // if (!window.navigator.standalone)// not running as an installed app |
55 | 52 | ||
56 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler'); | 53 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler'); |
57 | 54 | ||
58 | MochiKit.DOM.addElementClass(document.body, 'iPhone'); | 55 | MochiKit.DOM.addElementClass(document.body, 'iPhone'); |
59 | return this; | 56 | return this; |
60 | } | 57 | } |
61 | 58 | ||
62 | MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, { | 59 | MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, { |
63 | 60 | ||
64 | 'toString': function () { | 61 | 'toString': function () { |
65 | return "Clipperz.PM.UI.iPhone.Controllers.MainController"; | 62 | return "Clipperz.PM.UI.iPhone.Controllers.MainController"; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //========================================================================= | 65 | //========================================================================= |
69 | 66 | ||
70 | 'user': function () { | 67 | 'user': function () { |
71 | return this._user; | 68 | return this._user; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setUser': function (aValue) { | 71 | 'setUser': function (aValue) { |
75 | this._user = aValue; | 72 | this._user = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //========================================================================= | 75 | //========================================================================= |
79 | 76 | ||
80 | 'loginForm': function() { | 77 | 'loginForm': function() { |
81 | if (this._loginForm == null) { | 78 | if (this._loginForm == null) { |
82 | MochiKit.DOM.removeElement('mainDiv'); | 79 | MochiKit.DOM.removeElement('mainDiv'); |
83 | this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body}); | 80 | this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body}); |
84 | MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler') | 81 | MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler') |
85 | } | 82 | } |
86 | 83 | ||
87 | return this._loginForm; | 84 | return this._loginForm; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | 'removeLoginForm': function () { | 87 | 'removeLoginForm': function () { |
91 | if (this._loginForm != null) { | 88 | if (this._loginForm != null) { |
92 | this._loginForm.remove(); | 89 | this._loginForm.remove(); |
93 | this._loginForm = null; | 90 | this._loginForm = null; |
94 | } | 91 | } |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //----------------------------------------------------------------------------- | 94 | //----------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'cardList': function () { | 96 | 'cardList': function () { |
100 | if (this._cardList == null) { | 97 | if (this._cardList == null) { |
101 | this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body}); | 98 | this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body}); |
102 | MochiKit.Signal.connect(this._cardList, 'searchEvent',this, 'searchEventHandler') | 99 | MochiKit.Signal.connect(this._cardList, 'searchEvent',this, 'searchEventHandler') |
103 | MochiKit.Signal.connect(this._cardList, 'selectedCard',this, 'selecetedCardHandler') | 100 | MochiKit.Signal.connect(this._cardList, 'selectedCard',this, 'selecetedCardHandler') |
104 | } | 101 | } |
105 | 102 | ||
106 | return this._cardList; | 103 | return this._cardList; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //========================================================================= | 106 | //========================================================================= |
110 | 107 | ||
111 | 'currentWidth': function () { | 108 | 'currentWidth': function () { |
112 | return this._currentWidth; | 109 | return this._currentWidth; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'setCurrentWidth': function (aValue) { | 112 | 'setCurrentWidth': function (aValue) { |
116 | this._currentWidth = aValue; | 113 | this._currentWidth = aValue; |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //========================================================================= | 116 | //========================================================================= |
120 | 117 | ||
121 | 'orientationChangeHandler': function () { | 118 | 'orientationChangeHandler': function () { |
122 | switch(window.orientation) { | 119 | switch(window.orientation) { |
123 | case 0: | 120 | case 0: |
124 | this.setOrientation('portrait'); | 121 | this.setOrientation('portrait'); |
125 | break; | 122 | break; |
126 | case 90: | 123 | case 90: |
127 | case -90: | 124 | case -90: |
128 | this.setOrientation('landscape'); | 125 | this.setOrientation('landscape'); |
129 | break; | 126 | break; |
130 | } | 127 | } |
131 | }, | 128 | }, |
132 | 129 | ||
133 | //------------------------------------------------------------------------- | 130 | //------------------------------------------------------------------------- |
134 | 131 | ||
135 | 'setOrientation': function (anOrientation) { | 132 | 'setOrientation': function (anOrientation) { |
136 | document.body.setAttribute('orientation', anOrientation); | 133 | document.body.setAttribute('orientation', anOrientation); |
137 | setTimeout(scrollTo, 100, 0, 1); | 134 | setTimeout(scrollTo, 100, 0, 1); |
138 | }, | 135 | }, |
139 | 136 | ||
140 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
141 | 138 | ||
142 | 'slidePages': function (fromPage, toPage, backwards) { | 139 | 'slidePages': function (fromPage, toPage, backwards) { |
143 | var axis; | 140 | var axis; |
144 | var slideDone; | 141 | var slideDone; |
145 | 142 | ||
146 | slideDone = function () { | 143 | slideDone = function () { |
147 | // console.log("slideDone"); | 144 | // console.log("slideDone"); |
148 | if (!hasClass(toPage, "dialog")) { | 145 | if (!hasClass(toPage, "dialog")) { |
149 | fromPage.removeAttribute("selected"); | 146 | fromPage.removeAttribute("selected"); |
150 | } | 147 | } |
151 | checkTimer = setInterval(checkOrientAndLocation, 300); | 148 | checkTimer = setInterval(checkOrientAndLocation, 300); |
152 | setTimeout(updatePage, 0, toPage, fromPage); | 149 | setTimeout(updatePage, 0, toPage, fromPage); |
153 | fromPage.removeEventListener('webkitTransitionEnd', slideDone, false); | 150 | fromPage.removeEventListener('webkitTransitionEnd', slideDone, false); |
154 | } | 151 | } |
155 | 152 | ||
156 | axis = (backwards ? fromPage : toPage).getAttribute("axis"); | 153 | axis = (backwards ? fromPage : toPage).getAttribute("axis"); |
157 | 154 | ||
158 | clearInterval(checkTimer); | 155 | clearInterval(checkTimer); |
159 | 156 | ||
160 | if (canDoSlideAnim() && axis != 'y') { | 157 | if (canDoSlideAnim() && axis != 'y') { |
161 | slide2(fromPage, toPage, backwards, slideDone); | 158 | slide2(fromPage, toPage, backwards, slideDone); |
162 | } else { | 159 | } else { |
163 | slide1(fromPage, toPage, backwards, axis, slideDone); | 160 | slide1(fromPage, toPage, backwards, axis, slideDone); |
164 | } | 161 | } |
165 | }, | 162 | }, |
166 | 163 | ||
167 | //------------------------------------------------------------------------- | 164 | //------------------------------------------------------------------------- |
168 | 165 | ||
169 | 'getCachedValues': function () { | 166 | 'getCachedValues': function () { |
170 | var deferredResult; | 167 | var deferredResult; |
171 | 168 | ||
172 | if (this._cachedObjects != null) { | 169 | if (this._cachedObjects != null) { |
173 | deferredResult = MochiKit.Async.succeed(this._cachedObjects); | 170 | deferredResult = MochiKit.Async.succeed(this._cachedObjects); |
174 | } else { | 171 | } else { |
175 | deferredResult = new Clipperz.Async.Deferred("MainController.getCachedValues", {trace:false}); | 172 | deferredResult = new Clipperz.Async.Deferred("MainController.getCachedValues", {trace:false}); |
176 | deferredResult.addMethod(this.user(), 'getRecords'); | 173 | deferredResult.addMethod(this.user(), 'getRecords'); |
177 | deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.getCachedValues - collectResults", { | 174 | deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.getCachedValues - collectResults", { |
178 | '_rowObject': MochiKit.Async.succeed, | 175 | '_rowObject': MochiKit.Async.succeed, |
179 | '_reference': MochiKit.Base.methodcaller('reference'), | 176 | '_reference': MochiKit.Base.methodcaller('reference'), |
180 | 'label': MochiKit.Base.methodcaller('label'), | 177 | 'label': MochiKit.Base.methodcaller('label'), |
181 | 'favicon': MochiKit.Base.methodcaller('favicon'), | 178 | 'favicon': MochiKit.Base.methodcaller('favicon'), |
182 | '_searchableContent':MochiKit.Base.methodcaller('searchableContent') | 179 | '_searchableContent':MochiKit.Base.methodcaller('searchableContent') |
183 | }, {trace:false})); | 180 | }, {trace:false})); |
184 | deferredResult.addCallback(Clipperz.Async.collectAll); | 181 | deferredResult.addCallback(Clipperz.Async.collectAll); |
185 | deferredResult.addCallback(MochiKit.Base.bind(function (someRows) { | 182 | deferredResult.addCallback(MochiKit.Base.bind(function (someRows) { |
186 | this._cachedObjects = someRows; | 183 | this._cachedObjects = someRows; |
187 | return this._cachedObjects; | 184 | return this._cachedObjects; |
188 | }, this)); | 185 | }, this)); |
189 | deferredResult.callback(); | 186 | deferredResult.callback(); |
190 | } | 187 | } |
191 | 188 | ||
192 | return deferredResult; | 189 | return deferredResult; |
193 | }, | 190 | }, |
194 | //========================================================================= | 191 | //========================================================================= |
195 | 192 | ||
196 | 'run': function(shouldShowRegistrationForm) { | 193 | 'run': function(shouldShowRegistrationForm) { |
197 | this.loginForm().render(); | 194 | this.loginForm().render(); |
198 | MochiKit.Async.callLater(1, MochiKit.Base.method(this.loginForm(), 'focusOnUsername')); | 195 | MochiKit.Async.callLater(1, MochiKit.Base.method(this.loginForm(), 'focusOnUsername')); |
199 | }, | 196 | }, |
200 | 197 | ||
201 | //========================================================================= | 198 | //========================================================================= |
202 | 199 | ||
203 | 'doLoginHandler': function (someArgs) { | 200 | 'doLoginHandler': function (someArgs) { |
204 | var deferredResult; | 201 | var deferredResult; |
205 | varparameters; | 202 | varparameters; |
206 | varshouldUseOTP; | 203 | varshouldUseOTP; |
207 | // var loginProgress; | 204 | // var loginProgress; |
208 | varuser; | 205 | varuser; |
209 | var getPassphraseDelegate; | 206 | var getPassphraseDelegate; |
210 | 207 | ||
211 | parameters = someArgs; | 208 | parameters = someArgs; |
212 | shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); | 209 | shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); |
213 | 210 | ||
214 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); | 211 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); |
215 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':getPassphraseDelegate}); | 212 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':getPassphraseDelegate}); |
216 | 213 | ||