summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--backend/php/src/configuration.php6
-rw-r--r--backend/php/src/index.php189
-rw-r--r--frontend/beta/js/Clipperz/PM/DataModel/Record.js7
-rw-r--r--frontend/beta/js/Clipperz/PM/Proxy.js3
-rwxr-xr-xfrontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js262
-rw-r--r--frontend/gamma/html/index_template.html5
-rw-r--r--frontend/gamma/js/Clipperz/Async.js19
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy.js2
8 files changed, 205 insertions, 288 deletions
diff --git a/backend/php/src/configuration.php b/backend/php/src/configuration.php
index 291e3a1..85f680e 100644
--- a/backend/php/src/configuration.php
+++ b/backend/php/src/configuration.php
@@ -16,10 +16,10 @@ $configuration['db_encoding'] = 0;
16 16
17// edit the information below to match your database settings 17// edit the information below to match your database settings
18 18
19 $configuration['db'] = 'clipperz'; //database name 19 $configuration['db'] = 'clipperz'; //database name
20 $configuration['host'] = 'localhost'; //database host 20 $configuration['host'] = 'localhost'; //database host
21 $configuration['user'] = 'root'; //database user 21 $configuration['user'] = 'clipperz'; //database user
22 $configuration['pass'] = 'pass'; //database password 22 $configuration['pass'] = 'clipperz'; //database password
23 $configuration['port'] = '3306'; //database port 23 $configuration['port'] = '3306'; //database port
24 24
25 25
diff --git a/backend/php/src/index.php b/backend/php/src/index.php
index 214ac01..da7c60c 100644
--- a/backend/php/src/index.php
+++ b/backend/php/src/index.php
@@ -140,7 +140,9 @@ function updateUserData($parameters, &$user) {
140 $user->header = $parameters["header"]; 140 $user->header = $parameters["header"];
141 $user->statistics =$parameters["statistics"]; 141 $user->statistics =$parameters["statistics"];
142 $user->version =$parameters["version"]; 142 $user->version =$parameters["version"];
143 $user->lock = $parameters["lock"]; 143 if (array_key_exists("lock", $parameters)) {
144 $user->lock = $parameters["lock"];
145 }
144} 146}
145 147
146function updateRecordData($parameters, &$record, &$recordVersion) { 148function updateRecordData($parameters, &$record, &$recordVersion) {
@@ -153,7 +155,9 @@ function updateRecordData($parameters, &$record, &$recordVersion) {
153 $recordVersion->reference = $recordVersionData ["reference"]; 155 $recordVersion->reference = $recordVersionData ["reference"];
154 $recordVersion->data = $recordVersionData ["data"]; 156 $recordVersion->data = $recordVersionData ["data"];
155 $recordVersion->version = $recordVersionData ["version"]; 157 $recordVersion->version = $recordVersionData ["version"];
156 $recordVersion->previous_version_id =$recordVersionData ["previousVersion"]; 158 if (array_key_exists("previousVersion", $recordVersionData)) {
159 $recordVersion->previous_version_id =$recordVersionData ["previousVersion"];
160 }
157 $recordVersion->previous_version_key =$recordVersionData ["previousVersionKey"]; 161 $recordVersion->previous_version_key =$recordVersionData ["previousVersionKey"];
158} 162}
159 163
@@ -365,6 +369,7 @@ error_log("oneTimePassword");
365 369
366 case "message": 370 case "message":
367error_log("message"); 371error_log("message");
372//error_log("message: ".json_encode($parameters));
368 if ($parameters["srpSharedSecret"] == $_SESSION["K"]) { 373 if ($parameters["srpSharedSecret"] == $_SESSION["K"]) {
369 $message = $parameters["message"]; 374 $message = $parameters["message"];
370 375
@@ -447,6 +452,88 @@ error_log("message");
447 $result["result"] = "done"; 452 $result["result"] = "done";
448 453
449 //============================================================= 454 //=============================================================
455 } else if ($message == "saveChanges") {
456
457//{
458// "message":"saveChanges",
459// "srpSharedSecret":"edc78508907c942173818f7247fa64869ba80672a7aa8d27b8fa6bfe524fb9c8",
460// "parameters":{
461// "records":{
462// "updated":[
463// {
464// "currentRecordVersion":{
465// "previousVersionKey":"####",
466// "reference":"08c8eb7ec528fbf987bbfb84fe2e960cf9ae937b19fbb5f05d8d90a7039fac6a",
467// "data":"WYQ16AjodjsmyZDXa4MKxOju0F…beD/zXlbVb0Zj0ZI/N55bZ",
468// "version":"0.3"
469// },
470// "record":{
471// "reference":"83de5304f60a808e48a815c6203d7d3f24874d3f40faba420bbc60b376fcc356",
472// "data":"B6uBuBE Aly0knvgrUppodDTGZQC…guizL9QvHCWyM bQQBGBVvHZ6LfA==",
473// "version":"0.3"
474// }
475// }
476// ],
477// "deleted":[
478//
479// ]
480// },
481// "user":{
482// "header":"{\"rec…sion\":\"0.1\"}",
483// "statistics":"e6iXVEM4i8ZatPZFCCads/9F",
484// "version":"0.3"
485// }
486// }
487//}
488 $user = new user();
489 $user = $user->Get($_SESSION["userId"]);
490 updateUserData($parameters["parameters"]["user"], $user);
491
492 $recordToUpdateParameterList = $parameters["parameters"]["records"]["updated"];
493 $c = count($recordToUpdateParameterList);
494 for ($i=0; $i<$c; $i++) {
495 $recordList = $user->GetRecordList(array(array("reference", "=", $recordToUpdateParameterList [$i]["record"]["reference"])));
496 if (count($recordList) == 0) {
497 $currentRecord = new record();
498 $currentVersion = new recordversion();
499 $isNewRecord = true;
500 } else {
501 $currentRecord = $recordList[0];
502 $currentRecordVersions = $currentRecord->GetRecordversionList();
503 $currentVersion = $currentRecordVersions[0];
504 $isNewRecord = false;
505 }
506
507 updateRecordData($recordToUpdateParameterList[$i], $currentRecord, $currentVersion);
508
509 if ($isNewRecord == true) {
510 $currentRecord->SaveNew();
511 $currentVersion->SaveNew();
512
513 $currentRecord->AddRecordversion($currentVersion);
514 $user->AddRecord($currentRecord);
515 }
516
517 $currentRecord->Save();
518 $currentVersion->Save();
519 }
520
521 $user->Save();
522
523 $recordToDeleteReferenceList = $parameters["parameters"]["records"]["deleted"];
524 $recordList = array();
525 $c = count($recordToDeleteReferenceList);
526 for ($i=0; $i<$c; $i++) {
527 array_push($recordList, array("reference", "=", $recordToDeleteReferenceList[$i]));
528 }
529
530 $record = new record();
531 $record->DeleteList($recordList, true);
532
533 $result["lock"] = $user->lock;
534 $result["result"] = "done";
535
536 //=============================================================
450 } else if ($message == "getRecordDetail") { 537 } else if ($message == "getRecordDetail") {
451//{ 538//{
452 //"message":"getRecordDetail", 539 //"message":"getRecordDetail",
@@ -474,21 +561,94 @@ error_log("message");
474 // updatedDate:"Tue, 17 April 2007 17:17:52 UTC", 561 // updatedDate:"Tue, 17 April 2007 17:17:52 UTC",
475 // data:"0/BjzyY6jeh71h...pAw2++NEyylGhMC5C5f5m8pBApYziN84s4O3JQ3khW/1UttQl4=" 562 // data:"0/BjzyY6jeh71h...pAw2++NEyylGhMC5C5f5m8pBApYziN84s4O3JQ3khW/1UttQl4="
476 //} 563 //}
564
565
566 // #Actual result (causing error in /gamma)
567 //{
568 // "result" : {
569 // "currentVersion" : {
570 // "reference" : "cb05177f96a832062c6b936d24323cb74a64e2ef1d97ee026cd1003755af7495",
571 // "data" : "RAnoHmikp7RmiZ2WVyEMW+Ia",
572 // "header" : "",
573 // "version" : "0.3",
574 // "creationDate" : "0000-00-00 00:00:00",
575 // "updateDate" : "2011-10-09 19:49:11",
576 // "accessDate" : "2011-10-09 19:49:11"
577 // },
578 // "reference" : "b07e2afa2ba782b9f379649b36ded6de0452b43c27e6b887c7ce4f2a93f44346",
579 // "data" : "NtK1nkLUabbJQx5uO8ept...ZJ5dkJYYkyh3VQ==",
580 // "version" : "0.3",
581 // "creationDate" : "2011-10-09 19:49:11",
582 // "updateDate" : "Tue, 30 Nov 1999 00:00:00 +0000",
583 // "accessDate" : "0000-00-00 00:00:00",
584 // "oldestUsedEncryptedVersion" : "---"
585 // }
586 //}
587
588
589 // #Response from the online /gamma version
590 //{
591 // "result" : {
592 // "versions" : {
593 // "e2c193f017ad4f6babf51de59f7550a40596afc0c27373b6a360e426b5bc06de" : {
594 // "reference" : "e2c193f017ad4f6babf51de59f7550a40596afc0c27373b6a360e426b5bc06de",
595 // "data" : "s\/3ClggH4uCcf+BkIMqQ...+W0PVt\/MJ3t7s1g0g",
596 // "creationDate" : "Mon, 10 October 2011 14:42:42 UTC",
597 // "header" : "####",
598 // "updateDate" : "Mon, 10 October 2011 14:42:42 UTC",
599 // "previousVersion" : "a96a6d8b9ac73fcdf874d8a8534ffb2d43da8f5222e96a4a29bd2ae437619463",
600 // "version" : "0.3",
601 // "accessDate" : "Mon, 10 October 2011 14:42:42 UTC",
602 // "previousVersionKey" : "####"
603 // },
604 // [...]
605 // "a96a6d8b9ac73fcdf874d8a8534ffb2d43da8f5222e96a4a29bd2ae437619463" : {
606 // "reference" : "a96a6d8b9ac73fcdf874d8a8534ffb2d43da8f5222e96a4a29bd2ae437619463",
607 // "accessDate" : "Mon, 10 October 2011 14:41:17 UTC",
608 // "creationDate" : "Mon, 27 October 2008 08:16:14 UTC",
609 // "version" : "0.3",
610 // "data" : "m3yhZu81UAjCY6U2Kn...IUCb9suV0fldGOg=",
611 // "updateDate" : "Mon, 27 October 2008 08:16:14 UTC",
612 // "header" : "####"
613 // }
614 // },
615 // "oldestUsedEncryptedVersion" : "0.2",
616 // "reference" : "36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113",
617 // "data" : "frlUkTbaOWD9j2ROat...ruWioCK0Mss27oHjPg==",
618 // "creationDate" : "Wed, 14 March 2007 17:39:35 UTC",
619 // "version" : "0.3",
620 // "accessDate" : "Mon, 10 October 2011 14:45:12 UTC",
621 // "currentVersion" : "e2c193f017ad4f6babf51de59f7550a40596afc0c27373b6a360e426b5bc06de",
622 // "updatedDate" : "Mon, 10 October 2011 14:45:12 UTC"
623 // },
624 // "toll" : {
625 // "requestType" : "MESSAGE",
626 // "targetValue" : "a516c942a3792cc620775a41f8870a6c7b51796d9a94da978a75da6a52eb1e10",
627 // "cost" : 2
628 // }
629 // }
630
477 $record = new record(); 631 $record = new record();
478 632
479 $recordList = $record->GetList(array(array("reference", "=", $parameters["parameters"]["reference"]))); 633 $recordList = $record->GetList(array(array("reference", "=", $parameters["parameters"]["reference"])));
480 $currentRecord = $recordList[0]; 634 $currentRecord = $recordList[0];
481 $currentRecordVersions = $currentRecord->GetRecordversionList(); 635 $currentRecordVersions = $currentRecord->GetRecordversionList();
482 $currentVersion = $currentRecordVersions[0]; 636 $currentVersion = $currentRecordVersions[0];
483 637
484 $result["currentVersion"] = array(); 638 $result["versions"] = array();
485 $result["currentVersion"]["reference"] =$currentVersion->reference; 639 // foreach ($currentRecordVersions as $currentVersion) {
486 $result["currentVersion"]["data"] = $currentVersion->data; 640 $result["versions"][$currentVersion->reference] = array();
487 $result["currentVersion"]["header"] = $currentVersion->header; 641 $result["versions"][$currentVersion->reference]["reference"]= $currentVersion->reference;
488 $result["currentVersion"]["version"] = $currentVersion->version; 642 $result["versions"][$currentVersion->reference]["data"] = $currentVersion->data;
489 $result["currentVersion"]["creationDate"] =$currentVersion->creation_date; 643 $result["versions"][$currentVersion->reference]["header"] = $currentVersion->header;
490 $result["currentVersion"]["updateDate"] =$currentVersion->update_date; 644 $result["versions"][$currentVersion->reference]["version"] = $currentVersion->version;
491 $result["currentVersion"]["accessDate"] =$currentVersion->access_date; 645 $result["versions"][$currentVersion->reference]["creationDate"]= $currentVersion->creation_date;
646 $result["versions"][$currentVersion->reference]["updateDate"]= $currentVersion->update_date;
647 $result["versions"][$currentVersion->reference]["accessDate"]= $currentVersion->access_date;
648
649 // }
650 $result["currentVersion"] = $currentVersion->reference;
651 // $result["currentVersion"] = $currentRecord->currentVersion; //????
492 652
493 $result["reference"] = $currentRecord->reference; 653 $result["reference"] = $currentRecord->reference;
494 $result["data"] = $currentRecord->data; 654 $result["data"] = $currentRecord->data;
@@ -749,7 +909,10 @@ error_log("default");
749 } 909 }
750 910
751 session_write_close(); 911 session_write_close();
912
913 $finalResult = Array();
914 $finalResult["result"] = $result;
752 915
753 echo(json_encode($result)); 916 echo(json_encode($finalResult));
754error_log("result: ".json_encode($result)); 917error_log("result: ".json_encode($finalResult));
755?> 918?>
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/Record.js b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
index 270f2ae..ffb45de 100644
--- a/frontend/beta/js/Clipperz/PM/DataModel/Record.js
+++ b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
@@ -279,18 +279,23 @@ Clipperz.PM.DataModel.Record.prototype = MochiKit.Base.update(null, {
279 if (this.shouldProcessData()) { 279 if (this.shouldProcessData()) {
280 var currentVersionParameters; 280 var currentVersionParameters;
281 281
282console.log("Record.processData", someValues);
282 this.processDataToExtractLegacyValues(someValues['data']); 283 this.processDataToExtractLegacyValues(someValues['data']);
283 284
284 if (typeof(someValues['data']['notes']) != 'undefined') { 285 if (typeof(someValues['data']['notes']) != 'undefined') {
285 this.setNotes(someValues['data']['notes']); 286 this.setNotes(someValues['data']['notes']);
286 } 287 }
288
287 if (someValues['data']['currentVersionKey'] != null) { 289 if (someValues['data']['currentVersionKey'] != null) {
288 this.setCurrentVersionKey(someValues['data']['currentVersionKey']); 290 this.setCurrentVersionKey(someValues['data']['currentVersionKey']);
289 } else { 291 } else {
290 this.setCurrentVersionKey(this.key()); 292 this.setCurrentVersionKey(this.key());
291 } 293 }
292 294
293 currentVersionParameters = someValues['currentVersion']; 295 // currentVersionParameters = someValues['currentVersion'];
296 currentVersionParameters = someValues['versions'][someValues['currentVersion']];
297console.log("Record.processData - this.currentVersionKey()", this.currentVersionKey());
298console.log("Record.processData - currentVersionParameters", currentVersionParameters);
294 currentVersionParameters['key'] = this.currentVersionKey(); 299 currentVersionParameters['key'] = this.currentVersionKey();
295 this.setCurrentVersion(new Clipperz.PM.DataModel.RecordVersion(this, currentVersionParameters)); 300 this.setCurrentVersion(new Clipperz.PM.DataModel.RecordVersion(this, currentVersionParameters));
296 301
diff --git a/frontend/beta/js/Clipperz/PM/Proxy.js b/frontend/beta/js/Clipperz/PM/Proxy.js
index f476196..bec9195 100644
--- a/frontend/beta/js/Clipperz/PM/Proxy.js
+++ b/frontend/beta/js/Clipperz/PM/Proxy.js
@@ -116,8 +116,7 @@ Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, {
116 this.addToll(new Clipperz.PM.Toll(someParameters['toll'])); 116 this.addToll(new Clipperz.PM.Toll(someParameters['toll']));
117 } 117 }
118//console.log("<<< Proxy.setTallCallback", someParameters['result']); 118//console.log("<<< Proxy.setTallCallback", someParameters['result']);
119 //return someParameters['result']; 119 return someParameters['result'];
120 return someParameters;
121 }, 120 },
122 121
123 //========================================================================= 122 //=========================================================================
diff --git a/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js b/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js
deleted file mode 100755
index 34a10c2..0000000
--- a/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js
+++ b/dev/null
@@ -1,262 +0,0 @@
1/*
2
3Copyright 2008-2011 Clipperz Srl
4
5This file is part of Clipperz Community Edition.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please
8refer to http://www.clipperz.com.
9
10* Clipperz Community Edition is free software: you can redistribute
11 it and/or modify it under the terms of the GNU Affero General Public
12 License as published by the Free Software Foundation, either version
13 3 of the License, or (at your option) any later version.
14
15* Clipperz Community Edition is distributed in the hope that it will
16 be useful, but WITHOUT ANY WARRANTY; without even the implied
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details.
19
20* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see
22 <http://www.gnu.org/licenses/>.
23
24*/
25
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28
29//=============================================================================
30
31Clipperz.PM.Proxy.PHP = function(args) {
32 Clipperz.PM.Proxy.PHP.superclass.constructor.call(this, args);
33/*
34 this._tolls = {
35 'CONNECT':[],
36 'REGISTER':[],
37 'MESSAGE':[]
38 };
39 */
40 return this;
41}
42
43YAHOO.extendX(Clipperz.PM.Proxy.PHP, Clipperz.PM.Proxy, {
44
45 'toString': function() {
46 return "Clipperz.PM.Proxy.PHP - " + this.args();
47 },
48
49 //=========================================================================
50/*
51 'tolls': function() {
52 return this._tolls;
53 },
54*/
55 //-------------------------------------------------------------------------
56/*
57 'payToll': function(aRequestType, someParameters) {
58 vardeferredResult;
59
60//MochiKit.Logging.logDebug(">>> Proxy.DWR.payToll: " + aRequestType);
61 if (this.tolls()[aRequestType].length > 0) {
62 deferredResult = MochiKit.Async.succeed(this.tolls()[aRequestType].pop());
63 } else {
64//MochiKit.Logging.logDebug("### " + aRequestType + " toll NOT immediately available; request queued.");
65 deferredResult = new MochiKit.Async.Deferred();
66 deferredResult.addCallback(function(someParameters) {
67 return new Clipperz.PM.Toll(someParameters['toll']);
68 })
69 com_clipperz_pm_Proxy.knock(Clipperz.Base.serializeJSON({requestType:aRequestType}), {
70 callback:MochiKit.Base.method(deferredResult, 'callback'),
71 errorHandler:MochiKit.Base.method(deferredResult, 'errback')
72 });
73 }
74
75 deferredResult.addCallback(function(aToll) {
76 return aToll.deferredPay();
77 });
78 deferredResult.addCallback(function(someParameters, aToll) {
79 var result;
80
81 result = {
82 parameters: someParameters,
83 toll: aToll
84 }
85
86 return result;
87 }, someParameters);
88
89 return deferredResult;
90 },
91*/
92 //-------------------------------------------------------------------------
93/*
94 'addToll': function(aToll) {
95 this.tolls()[aToll.requestType()].push(aToll);
96 },
97*/
98 //=========================================================================
99/*
100 'setTollCallback': function(someParameters) {
101//MochiKit.Logging.logDebug(">>> Proxy.DWR.setTollCallback");
102//MochiKit.Logging.logDebug("--- Proxy.DWR.setTollCallback - " + Clipperz.Base.serializeJSON(someParameters));
103 if (typeof(someParameters['toll']) != 'undefined') {
104 this.addToll(new Clipperz.PM.Toll(someParameters['toll']));
105 }
106 return someParameters['result'];
107 },
108*/
109 //=========================================================================
110
111 'registration': function(someParameters) {
112 return this.sendMessage('registration', someParameters, 'REGISTER');
113 },
114
115 //-------------------------------------------------------------------------
116
117 'handshake': function(someParameters) {
118/*
119 _s = "e8a2162f29aeaabb729f5625e9740edbf0cd80ac77c6b19ab951ed6c88443b8c";
120 _v = new Clipperz.Crypto.BigInt("955e2db0f7844aca372f5799e5f7e51b5866718493096908bd66abcf1d068108", 16);
121 _b = new Clipperz.Crypto.BigInt("5761e6c84d22ea3c5649de01702d60f674ccfe79238540eb34c61cd020230c53", 16);
122
123 _B = _v.add(Clipperz.Crypto.SRP.g().powerModule(_b, Clipperz.Crypto.SRP.n()));
124 _u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_B.asString(10))).toHexString(), 16);
125 _A = new Clipperz.Crypto.BigInt("3b3567ec33d73673552e960872eb154d091a2488915941038aef759236a27e64", 16);
126 _S = (_A.multiply(_v.powerModule(_u, Clipperz.Crypto.SRP.n()))).powerModule(_b, Clipperz.Crypto.SRP.n());
127 _K = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_S.asString(10))).toHexString().slice(2);
128 _M1 = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_A.asString(10) + _B.asString(10) + _K)).toHexString().slice(2);
129 _M2 = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_A.asString(10) + _M1 + _K)).toHexString().slice(2);
130
131 // MochiKit.Logging.logDebug("b = " + _b.asString(16));
132 // MochiKit.Logging.logDebug("v = " + _v.asString(16));
133 MochiKit.Logging.logDebug("B = " + _B.asString(16));
134 MochiKit.Logging.logDebug("u = " + _u.asString(16));
135 MochiKit.Logging.logDebug("S = " + _S.asString(16));
136 MochiKit.Logging.logDebug("K = " + _K);
137 MochiKit.Logging.logDebug("M1 = " + _M1);
138 MochiKit.Logging.logDebug("M2 = " + _M2);
139 // MochiKit.Logging.logDebug("someParameters.version: " + someParameters.version);
140 */
141 return this.sendMessage('handshake', someParameters, 'CONNECT');
142 },
143
144 //-------------------------------------------------------------------------
145
146 'message': function(someParameters) {
147 return this.sendMessage('message', someParameters, 'MESSAGE');
148 },
149
150 //-------------------------------------------------------------------------
151
152 'logout': function(someParameters) {
153//MochiKit.Logging.logDebug("=== Proxy.DWR.logout");
154 return this.sendMessage('logout', someParameters, 'MESSAGE');
155 },
156
157 //=========================================================================
158
159 'sendMessage': function(aFunctionName, someParameters, aRequestType) {
160/*
161 vardeferredResult;
162 var proxy;
163
164//MochiKit.Logging.logDebug(">>> Proxy.DWR.sendMessage - " + aFunctionName + " - " + aRequestType);
165 proxy = this;
166
167 deferredResult = new MochiKit.Async.Deferred();
168//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.1 Proxy.DWR.sendMessage - 1: " + res); return res;});
169 deferredResult.addCallback(MochiKit.Base.method(proxy, 'payToll'), aRequestType);
170//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.2 Proxy.DWR.sendMessage - 2: " + Clipperz.Base.serializeJSON(res)); return res;});
171 deferredResult.addCallback(MochiKit.Base.method(proxy, 'sendRemoteMessage'), aFunctionName);
172//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.DWR.sendMessage - 3: " + res); return res;});
173//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.DWR.sendMessage - 3: " + Clipperz.Base.serializeJSON(res)); return res;});
174 deferredResult.callback(someParameters);
175
176//MochiKit.Logging.logDebug("<<< Proxy.DWR.sendMessage");
177 return deferredResult;
178*/
179
180 // return this.sendRemoteMessage(aFunctionName, someParameters);
181
182
183 vardeferredResult;
184 var proxy;
185
186 proxy = this;
187
188 deferredResult = new MochiKit.Async.Deferred();
189 deferredResult.addCallback(MochiKit.Base.method(proxy, 'sendRemoteMessage'), aFunctionName);
190//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.PHP.sendMessage - 3: " + res); return res;});
191//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.PHP.sendMessage - 3.1: " + Clipperz.Base.serializeJSON(res)); return res;});
192
193 deferredResult.callback(someParameters);
194
195 return deferredResult;
196 },
197
198 //=========================================================================
199
200 'sendRemoteMessage': function(aFunctionName, someParameters) {
201/*
202 vardeferredResult;
203
204//MochiKit.Logging.logDebug(">>> Proxy.DWR.sendRemoteMessage('" + aFunctionName + "', " + Clipperz.Base.serializeJSON(someParameters) + ") - " + this);
205 deferredResult = new MochiKit.Async.Deferred();
206//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Proxy.DWR.sendRemoteMessage - 1: " + res); return res;});
207 // deferredResult.addCallback(MochiKit.Base.method(this, 'setTollCallback'));
208//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Proxy.DWR.sendRemoteMessage - 2: " + res); return res;});
209
210 com_clipperz_pm_Proxy[aFunctionName](Clipperz.Base.serializeJSON(someParameters), {
211 callback:MochiKit.Base.method(deferredResult, 'callback'),
212 errorHandler:MochiKit.Base.method(deferredResult, 'errback')
213 });
214//MochiKit.Logging.logDebug("<<< Proxy.PHP.sendRemoteMessage - result: " + deferredResult);
215
216 return deferredResult;
217*/
218
219 vardeferredResult;
220 var parameters;
221
222//MochiKit.Logging.logDebug(">>> Proxy.PHP.sendRemoteMessage('" + aFunctionName + "', " + Clipperz.Base.serializeJSON(someParameters) + ") - " + this);
223 parameters = {};
224 parameters['method'] = aFunctionName;
225 // parameters['version'] = someParameters['version'];
226 // parameters['message'] = someParameters['message'];
227 parameters['parameters'] = Clipperz.Base.serializeJSON(someParameters);
228//MochiKit.Logging.logDebug("--- Proxy.PHP.sendRemoteMessage('" + Clipperz.Base.serializeJSON(parameters) + ") - " + this);
229 deferredResult = new MochiKit.Async.Deferred();
230 deferredResult.addCallback(MochiKit.Async.doXHR, "./php/index.php", {
231 method:'POST',
232 sendContent:MochiKit.Base.queryString(parameters),
233 headers:{"Content-Type":"application/x-www-form-urlencoded"}
234 });
235//deferredResult.addCallback(function(res) {MochiKit.Logging.logDebug("Proxy.PHP.response - 2: " + res.responseText); return res;});
236//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("Proxy.PHP.response - ERROR: " + res); return res;});
237 deferredResult.addCallback(MochiKit.Async.evalJSONRequest);
238 deferredResult.addCallback(function (someValues) {
239 if (someValues['result'] == 'EXCEPTION') {
240 throw someValues['message'];
241 }
242 return someValues;
243 })
244 deferredResult.callback();
245
246 return deferredResult;
247 },
248
249 //=========================================================================
250
251 'isReadOnly': function() {
252 return false;
253 },
254
255 //=========================================================================
256 __syntaxFix__: "syntax fix"
257
258});
259
260//=============================================================================
261
262//Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.PHP("Proxy.PHP - async test");
diff --git a/frontend/gamma/html/index_template.html b/frontend/gamma/html/index_template.html
index 8cf838c..bedb243 100644
--- a/frontend/gamma/html/index_template.html
+++ b/frontend/gamma/html/index_template.html
@@ -39,6 +39,11 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
39</div> 39</div>
40<div id="applicationVersionType" class="@application.version.type@"></div> 40<div id="applicationVersionType" class="@application.version.type@"></div>
41 41
42<script>
43 Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@});
44 /*offline_data_placeholder*/
45</script>
46
42<!-- --> 47<!-- -->
43<div id="javaScriptAlert"> 48<div id="javaScriptAlert">
44 <div class="mask"></div> 49 <div class="mask"></div>
diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js
index 7c9d783..97d8ecf 100644
--- a/frontend/gamma/js/Clipperz/Async.js
+++ b/frontend/gamma/js/Clipperz/Async.js
@@ -62,7 +62,8 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
62 62
63 'callback': function (aValue) { 63 'callback': function (aValue) {
64 if (this._shouldTrace) { 64 if (this._shouldTrace) {
65 Clipperz.log("CALLBACK " + this._name, aValue); 65 //Clipperz.log("CALLBACK " + this._name, aValue);
66 console.log("CALLBACK " + this._name, aValue);
66 } 67 }
67 68
68 if (this.chained == false) { 69 if (this.chained == false) {
@@ -82,7 +83,8 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
82 resultMessage = "RESULT " + this._name + " <=="; 83 resultMessage = "RESULT " + this._name + " <==";
83 // this.addCallback(function(aResult) { 84 // this.addCallback(function(aResult) {
84 Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { 85 Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) {
85 Clipperz.log(resultMessage, aResult); 86 //Clipperz.log(resultMessage, aResult);
87 console.log(resultMessage, aResult);
86 88
87 return aResult; 89 return aResult;
88 }); 90 });
@@ -106,8 +108,10 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
106 message = "[" + this._count + "] " + this._name + " "; 108 message = "[" + this._count + "] " + this._name + " ";
107 // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); 109 // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;});
108 this.addCallbacks( 110 this.addCallbacks(
109 function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, 111 //function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;},
110 function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;} 112 function(aResult) {console.log("-OK- " + message + "-->"/*, aResult*/); return aResult;},
113 //function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;}
114 function(aResult) {console.log("FAIL " + message + "-->"/*, aResult*/); return aResult;}
111 ); 115 );
112 } 116 }
113 117
@@ -116,8 +120,10 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
116 if (this._shouldTrace) { 120 if (this._shouldTrace) {
117 // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); 121 // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;});
118 this.addCallbacks( 122 this.addCallbacks(
119 function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;}, 123 //function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;},
120 function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;} 124 function(aResult) {console.log("-OK- " + message + "<--", aResult); return aResult;},
125 //function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;}
126 function(aResult) {console.log("FAIL " + message + "<--", aResult); return aResult;}
121 ); 127 );
122 } 128 }
123 }, 129 },
@@ -406,6 +412,7 @@ MochiKit.Base.update(Clipperz.Async.DeferredSynchronizer.prototype, {
406 } else if (this.numberOfMethodsDone() == this.methods().length) { 412 } else if (this.numberOfMethodsDone() == this.methods().length) {
407 this.result().callback(); 413 this.result().callback();
408 } else if (this.numberOfMethodsDone() > this.methods().length) { 414 } else if (this.numberOfMethodsDone() > this.methods().length) {
415 alert("Clipperz.Async.Deferred.handleMethodCallDone -> WTF!");
409 //WTF!!! :( 416 //WTF!!! :(
410 } 417 }
411 418
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy.js b/frontend/gamma/js/Clipperz/PM/Proxy.js
index 190bffd..9817eac 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy.js
@@ -142,7 +142,7 @@ Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, {
142 'processMessage': function (aFunctionName, someParameters, aRequestType) { 142 'processMessage': function (aFunctionName, someParameters, aRequestType) {
143 vardeferredResult; 143 vardeferredResult;
144 144
145 deferredResult = new Clipperz.Async.Deferred("Proxy.processMessage", {trace:false}); 145 deferredResult = new Clipperz.Async.Deferred("Proxy.processMessage", {trace:true});
146 deferredResult.addMethod(this, 'payToll', aRequestType); 146 deferredResult.addMethod(this, 'payToll', aRequestType);
147 deferredResult.addMethod(this, 'sendMessage', aFunctionName); 147 deferredResult.addMethod(this, 'sendMessage', aFunctionName);
148 deferredResult.addMethod(this, 'setTollCallback'); 148 deferredResult.addMethod(this, 'setTollCallback');