Diffstat (limited to 'frontend/gamma/js/Clipperz/Async.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/gamma/js/Clipperz/Async.js | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js index e80c3a2..7c9d783 100644 --- a/frontend/gamma/js/Clipperz/Async.js +++ b/frontend/gamma/js/Clipperz/Async.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.Async = MochiKit.Async; | 26 | //Clipperz.Async = MochiKit.Async; |
30 | 27 | ||
31 | 28 | ||
32 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
33 | if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; } | 30 | if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; } |
34 | 31 | ||
35 | Clipperz.Async.VERSION = "0.1"; | 32 | Clipperz.Async.VERSION = "0.1"; |
36 | Clipperz.Async.NAME = "Clipperz.Async"; | 33 | Clipperz.Async.NAME = "Clipperz.Async"; |
37 | 34 | ||
38 | Clipperz.Async.Deferred = function(aName, args) { | 35 | Clipperz.Async.Deferred = function(aName, args) { |
39 | args = args || {}; | 36 | args = args || {}; |
40 | 37 | ||
41 | Clipperz.Async.Deferred.superclass.constructor.call(this, args.canceller); | 38 | Clipperz.Async.Deferred.superclass.constructor.call(this, args.canceller); |
42 | 39 | ||
43 | this._args = args; | 40 | this._args = args; |
44 | this._name = aName || "Anonymous deferred"; | 41 | this._name = aName || "Anonymous deferred"; |
45 | this._count = 0; | 42 | this._count = 0; |
46 | this._shouldTrace = ((CLIPPERZ_DEFERRED_TRACING_ENABLED === true) || (args.trace === true)); | 43 | this._shouldTrace = ((CLIPPERZ_DEFERRED_TRACING_ENABLED === true) || (args.trace === true)); |
47 | this._vars = null; | 44 | this._vars = null; |
48 | 45 | ||
49 | return this; | 46 | return this; |
50 | } | 47 | } |
51 | 48 | ||
52 | //============================================================================= | 49 | //============================================================================= |
53 | 50 | ||
54 | Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, { | 51 | Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, { |
55 | 52 | ||
56 | 'name': function () { | 53 | 'name': function () { |
57 | return this._name; | 54 | return this._name; |
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 | 'callback': function (aValue) { | 63 | 'callback': function (aValue) { |
67 | if (this._shouldTrace) { | 64 | if (this._shouldTrace) { |
68 | Clipperz.log("CALLBACK " + this._name, aValue); | 65 | Clipperz.log("CALLBACK " + this._name, aValue); |
69 | } | 66 | } |
70 | 67 | ||
71 | if (this.chained == false) { | 68 | if (this.chained == false) { |
72 | var message; | 69 | var message; |
73 | 70 | ||
74 | message = "ERROR [" + this._name + "]"; | 71 | message = "ERROR [" + this._name + "]"; |
75 | this.addErrback(function(aResult) { | 72 | this.addErrback(function(aResult) { |
76 | if (! (aResult instanceof MochiKit.Async.CancelledError)) { | 73 | if (! (aResult instanceof MochiKit.Async.CancelledError)) { |
77 | Clipperz.log(message, aResult); | 74 | Clipperz.log(message, aResult); |
78 | } | 75 | } |
79 | return aResult; | 76 | return aResult; |
80 | }); | 77 | }); |
81 | 78 | ||
82 | if (this._shouldTrace) { | 79 | if (this._shouldTrace) { |
83 | var resultMessage; | 80 | var resultMessage; |
84 | 81 | ||
85 | resultMessage = "RESULT " + this._name + " <=="; | 82 | resultMessage = "RESULT " + this._name + " <=="; |
86 | // this.addCallback(function(aResult) { | 83 | // this.addCallback(function(aResult) { |
87 | Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { | 84 | Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { |
88 | Clipperz.log(resultMessage, aResult); | 85 | Clipperz.log(resultMessage, aResult); |
89 | 86 | ||
90 | return aResult; | 87 | return aResult; |
91 | }); | 88 | }); |
92 | } | 89 | } |
93 | } | 90 | } |
94 | 91 | ||
95 | if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) { | 92 | if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) { |
96 | Clipperz.log("callback " + this._name, this); | 93 | Clipperz.log("callback " + this._name, this); |
97 | } | 94 | } |
98 | 95 | ||
99 | return Clipperz.Async.Deferred.superclass.callback.apply(this, arguments); | 96 | return Clipperz.Async.Deferred.superclass.callback.apply(this, arguments); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //----------------------------------------------------------------------------- | 99 | //----------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'addCallback': function () { | 101 | 'addCallback': function () { |
105 | var message; | 102 | var message; |
106 | 103 | ||
107 | if (this._shouldTrace) { | 104 | if (this._shouldTrace) { |
108 | this._count ++; | 105 | this._count ++; |
109 | message = "[" + this._count + "] " + this._name + " "; | 106 | message = "[" + this._count + "] " + this._name + " "; |
110 | // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); | 107 | // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); |
111 | this.addCallbacks( | 108 | this.addCallbacks( |
112 | function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, | 109 | function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, |
113 | function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;} | 110 | function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;} |
114 | ); | 111 | ); |
115 | } | 112 | } |
116 | 113 | ||
117 | Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments); | 114 | Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments); |
118 | 115 | ||
119 | if (this._shouldTrace) { | 116 | if (this._shouldTrace) { |
120 | // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); | 117 | // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); |
121 | this.addCallbacks( | 118 | this.addCallbacks( |
122 | function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;}, | 119 | function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;}, |
123 | function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;} | 120 | function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;} |
124 | ); | 121 | ); |
125 | } | 122 | } |
126 | }, | 123 | }, |
127 | 124 | ||
128 | //============================================================================= | 125 | //============================================================================= |
129 | 126 | ||
130 | 'addCallbackPass': function() { | 127 | 'addCallbackPass': function() { |
131 | var passFunction; | 128 | var passFunction; |
132 | 129 | ||
133 | passFunction = MochiKit.Base.partial.apply(null, arguments); | 130 | passFunction = MochiKit.Base.partial.apply(null, arguments); |
134 | 131 | ||
135 | this.addCallback(function() { | 132 | this.addCallback(function() { |
136 | var result; | 133 | var result; |
137 | 134 | ||
138 | result = arguments[arguments.length -1]; | 135 | result = arguments[arguments.length -1]; |
139 | passFunction(); | 136 | passFunction(); |
140 | 137 | ||
141 | return result; | 138 | return result; |
142 | }); | 139 | }); |
143 | }, | 140 | }, |
144 | 141 | ||
145 | //----------------------------------------------------------------------------- | 142 | //----------------------------------------------------------------------------- |
146 | 143 | ||
147 | 'addErrbackPass': function() { | 144 | 'addErrbackPass': function() { |
148 | var passFunction; | 145 | var passFunction; |
149 | 146 | ||
150 | passFunction = MochiKit.Base.partial.apply(null, arguments); | 147 | passFunction = MochiKit.Base.partial.apply(null, arguments); |
151 | 148 | ||
152 | this.addErrback(function() { | 149 | this.addErrback(function() { |
153 | var result; | 150 | var result; |
154 | 151 | ||
155 | result = arguments[arguments.length -1]; | 152 | result = arguments[arguments.length -1]; |
156 | passFunction(); | 153 | passFunction(); |
157 | 154 | ||
158 | return result; | 155 | return result; |
159 | }); | 156 | }); |
160 | }, | 157 | }, |
161 | 158 | ||
162 | //----------------------------------------------------------------------------- | 159 | //----------------------------------------------------------------------------- |
163 | 160 | ||
164 | 'addBothPass': function() { | 161 | 'addBothPass': function() { |
165 | var passFunction; | 162 | var passFunction; |
166 | 163 | ||
167 | passFunction = MochiKit.Base.partial.apply(null, arguments); | 164 | passFunction = MochiKit.Base.partial.apply(null, arguments); |
168 | 165 | ||
169 | this.addBoth(function() { | 166 | this.addBoth(function() { |
170 | var result; | 167 | var result; |
171 | 168 | ||
172 | result = arguments[arguments.length -1]; | 169 | result = arguments[arguments.length -1]; |
173 | passFunction(); | 170 | passFunction(); |
174 | 171 | ||
175 | return result; | 172 | return result; |
176 | }); | 173 | }); |
177 | }, | 174 | }, |
178 | 175 | ||
179 | //----------------------------------------------------------------------------- | 176 | //----------------------------------------------------------------------------- |
180 | 177 | ||
181 | 'addIf': function (aThenBlock, anElseBlock) { | 178 | 'addIf': function (aThenBlock, anElseBlock) { |
182 | this.addCallback(MochiKit.Base.bind(function (aValue) { | 179 | this.addCallback(MochiKit.Base.bind(function (aValue) { |
183 | var deferredResult; | 180 | var deferredResult; |
184 | 181 | ||
185 | if (!MochiKit.Base.isUndefinedOrNull(aValue) && aValue) { | 182 | if (!MochiKit.Base.isUndefinedOrNull(aValue) && aValue) { |
186 | deferredResult = Clipperz.Async.callbacks(this._name + " <then>", aThenBlock, null, aValue); | 183 | deferredResult = Clipperz.Async.callbacks(this._name + " <then>", aThenBlock, null, aValue); |
187 | } else { | 184 | } else { |
188 | deferredResult = Clipperz.Async.callbacks(this._name + " <else>", anElseBlock, null, aValue); | 185 | deferredResult = Clipperz.Async.callbacks(this._name + " <else>", anElseBlock, null, aValue); |
189 | } | 186 | } |
190 | 187 | ||
191 | return deferredResult; | 188 | return deferredResult; |
192 | })) | 189 | })) |
193 | }, | 190 | }, |
194 | 191 | ||
195 | //----------------------------------------------------------------------------- | 192 | //----------------------------------------------------------------------------- |
196 | 193 | ||
197 | 'addMethod': function () { | 194 | 'addMethod': function () { |
198 | this.addCallback(MochiKit.Base.method.apply(this, arguments)); | 195 | this.addCallback(MochiKit.Base.method.apply(this, arguments)); |
199 | }, | 196 | }, |
200 | 197 | ||
201 | //----------------------------------------------------------------------------- | 198 | //----------------------------------------------------------------------------- |
202 | 199 | ||
203 | 'addMethodcaller': function () { | 200 | 'addMethodcaller': function () { |
204 | this.addCallback(MochiKit.Base.methodcaller.apply(this, arguments)); | 201 | this.addCallback(MochiKit.Base.methodcaller.apply(this, arguments)); |
205 | }, | 202 | }, |
206 | 203 | ||
207 | //============================================================================= | 204 | //============================================================================= |
208 | 205 | ||
209 | 'addLog': function (aLog) { | 206 | 'addLog': function (aLog) { |
210 | if (CLIPPERZ_DEFERRED_LOGGING_ENABLED) { | 207 | if (CLIPPERZ_DEFERRED_LOGGING_ENABLED) { |
211 | this.addBothPass(function(res) {Clipperz.log(aLog + " ", res);}); | 208 | this.addBothPass(function(res) {Clipperz.log(aLog + " ", res);}); |
212 | // this.addBothPass(function(res) {console.log(aLog + " ", res);}); | 209 | // this.addBothPass(function(res) {console.log(aLog + " ", res);}); |
213 | } | 210 | } |
214 | }, | 211 | }, |
215 | 212 | ||
216 | //============================================================================= | 213 | //============================================================================= |