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:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user