1
0
mirror of http://git.whoc.org.uk/git/password-manager.git synced 2025-12-17 03:47:04 +01:00

Implemented Attachments in client

This commit is contained in:
Dario Chiappetta
2015-11-23 16:10:44 +01:00
parent 8608fb4253
commit 8c59393433
50 changed files with 4862 additions and 272 deletions

View File

@@ -62,7 +62,7 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.JSON, Clipperz.PM.Proxy, {
//=========================================================================
'_sendMessage': function(aFunctionName, aVersion, someParameters) {
'_sendMessage': function(aFunctionName, aVersion, someParameters, someOptionalParameters) {
var deferredResult;
var parameters;
@@ -71,13 +71,19 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.JSON, Clipperz.PM.Proxy, {
version: aVersion,
parameters: Clipperz.Base.serializeJSON(someParameters)
};
someOptionalParameters = someOptionalParameters || {};
//console.log("PROXY.JSON._sendMessage", parameters);
deferredResult = new Clipperz.Async.Deferred("Proxy.JSON._sendMessage", {trace:false});
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestSent');
deferredResult.addCallback(MochiKit.Async.doXHR, this.url(), {
deferredResult.addCallback(Clipperz.Async.doXHR, this.url(), {
// deferredResult.addCallback(MochiKit.Async.doXHR, this.url(), {
method:'POST',
sendContent:MochiKit.Base.queryString(parameters),
headers:{"Content-Type":"application/x-www-form-urlencoded"}
headers:{"Content-Type":"application/x-www-form-urlencoded"},
// downloadProgress:someOptionalParameters['downloadProgressCallback'] || null,
// uploadProgress:someOptionalParameters['uploadProgressCallback'] || null,
});
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestReceived');
deferredResult.addCallback(MochiKit.Base.itemgetter('responseText'));
@@ -94,6 +100,114 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.JSON, Clipperz.PM.Proxy, {
return deferredResult;
},
//-------------------------------------------------------------------------
// TODO: test
'_uploadAttachment': function(someArguments, aProgressCallback, aSharedSecret, aToll) {
var formData;
var deferredResult;
var parameters = {
'toll': aToll,
'parameters': {
'message': 'uploadAttachment',
'srpSharedSecret': aSharedSecret,
'parameters': {
'attachmentReference': someArguments['attachmentReference'],
'recordReference': someArguments['recordReference'],
'version': someArguments['version']
}
}
}
var blob = new Blob([someArguments['arrayBufferData']]);
formData = new FormData();
formData.append('method', 'message');
formData.append('version', 'fake-app-version'); // Not implemented anywhere yet
formData.append('parameters', JSON.stringify(parameters));
formData.append('data', blob);
deferredResult = new Clipperz.Async.Deferred("Proxy.JSON._sendMessage", {trace:false});
//deferredResult.addCallback(function(){console.log("About to send request");});
deferredResult.addCallback(Clipperz.Async.doXHR, this.url(), {
method:'POST',
sendContent:formData,
// headers:{"Content-Type":"application/x-www-form-urlencoded"},
uploadProgress: aProgressCallback || null,
});
//deferredResult.addCallback(function(something){console.log("Done sending request"); return something;});
deferredResult.addCallback(function (someValues) {
if (someValues['result'] == 'EXCEPTION') {
throw someValues['message'];
}
// TODO: check return value with actual request. Expected: ArrayBuffer
return someValues;
});
deferredResult.callback();
return deferredResult;
},
// TODO: test
'_downloadAttachment': function(someArguments, aProgressCallback, aSharedSecret, aToll) {
var deferredResult;
var parameters;
var innerParameters = {
'toll': aToll,
'parameters': {
'message': 'downloadAttachment',
'srpSharedSecret': aSharedSecret,
'parameters': {
'reference': someArguments['reference']
}
}
}
parameters = {
method: 'message',
version: 'fake-app-version',
parameters: Clipperz.Base.serializeJSON(innerParameters)
};
deferredResult = new Clipperz.Async.Deferred("Proxy.JSON._downloadAttachment", {trace:false});
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestSent');
//deferredResult.addCallback(function(){console.log("About to send request");});
deferredResult.addCallback(Clipperz.Async.doXHR, this.url(), {
method:'POST',
responseType:'arraybuffer',
sendContent:MochiKit.Base.queryString(parameters),
headers:{"Content-Type":"application/x-www-form-urlencoded"},
downloadProgress:aProgressCallback || null,
});
deferredResult.addCallback(
function(something){
// console.log("Done sending request", something);
return something;
});
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestReceived');
deferredResult.addCallback(MochiKit.Base.itemgetter('response'));
deferredResult.addCallback(function (anArrayBuffer) {
var result = (anArrayBuffer.byteLength > 0) ? anArrayBuffer : false;
var DEBUG = 'PUT_A_BREAKPOINT_HERE';
return {
result: anArrayBuffer,
};
})
// deferredResult.addErrback(function(something) {
// return something;
// });
deferredResult.callback();
return deferredResult;
},
//=========================================================================
__syntaxFix__: "syntax fix"