improve finish handling

This commit is contained in:
Jonathan Jenne 2023-10-11 12:35:30 +02:00
parent 8d5e24c6a7
commit e69dccb2e1
5 changed files with 50 additions and 23 deletions

View File

@ -111,9 +111,6 @@ namespace EnvelopeGenerator.Web.Handler
}
}
public async Task<IResult> HandlePostEnvelope(HttpContext ctx, DatabaseService database, LoggingService logging)
{
var logger = logging.LogConfig.GetLogger("FileHandler");

View File

@ -0,0 +1,5 @@
@page "/EnvelopeKey/Finish"
<h3>Dokumente signiert</h3>
<p>Sie haben den Umschlag erfolgreich signiert!</p>

View File

@ -50,7 +50,7 @@ export class App {
// Load PSPDFKit
console.debug("Loading PSPDFKit..")
App.Instance = await App.UI.loadPSPDFKit(arrayBuffer, container)
App.UI.configurePSPDFKit(this.Instance, App.handleClick)
App.UI.configurePSPDFKit(this.Instance, App.handleClick)
// Load annotations into PSPDFKit
console.debug("Loading annotations..")
@ -71,14 +71,18 @@ export class App {
}
public static async handleFinish(event: any) {
await App.Instance.save();
// Export annotation data and save to database
const json = await App.Instance.exportInstantJSON()
console.log(json);
console.log(JSON.stringify(json));
const result = await App.Network.postEnvelope(App.envelopeKey, App.currentDocument.id, JSON.stringify(json))
const result: boolean = await App.Network.postEnvelope(App.envelopeKey, App.currentDocument.id, JSON.stringify(json))
if (result == true) {
alert("Dokument erfolgreich signiert!")
}
// Flatten the annotations and save the document to disk
/*
@ -91,7 +95,7 @@ export class App {
public static async handleReset(event: any) {
if (confirm("Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?")) {
const result = App.Annotation.deleteAnnotations(App.Instance)
}
}
}
private static async downloadDocument() {
@ -202,7 +206,7 @@ class Network {
.then(res => res.json());
}
public postEnvelope(envelopeKey: string, documentId: number, jsonString: string): Promise<any> {
public postEnvelope(envelopeKey: string, documentId: number, jsonString: string): Promise<boolean> {
const options: RequestInit = {
credentials: "include",
method: "POST",
@ -210,11 +214,23 @@ class Network {
}
return fetch(`/api/envelope/${envelopeKey}?index=${documentId}`, options)
.then(res => {
console.log(res)
res.json()
.then(this.handleResponse)
.then((res: Response) => {
if (!res.ok) {
return false;
};
return true;
});
}
private handleResponse(res: Response) {
if (!res.ok) {
console.log(`Request failed with status ${res.status}`)
return res
} else {
return res
}
}
}
@ -230,7 +246,7 @@ class UI {
"zoom-mode",
"spacer",
"search"
]
]
// Load the PSPDFKit UI by setting a target element as the container to render in
// and a arraybuffer which represents the document that should be displayed.

View File

@ -133,16 +133,12 @@ var App = /** @class */ (function () {
json = _a.sent();
console.log(json);
console.log(JSON.stringify(json));
return [4 /*yield*/, App.Network.postEnvelope(App.envelopeKey, App.currentDocument.id, JSON.stringify(json))
// Flatten the annotations and save the document to disk
/*
const buffer = await App.Instance.exportPDF({ flatten: true });
const result = await App.Network.postDocument(App.envelopeKey, App.currentDocument.id, buffer);
console.log(result)
*/
];
return [4 /*yield*/, App.Network.postEnvelope(App.envelopeKey, App.currentDocument.id, JSON.stringify(json))];
case 3:
result = _a.sent();
if (result == true) {
alert("Dokument erfolgreich signiert!");
}
return [2 /*return*/];
}
});
@ -286,11 +282,24 @@ var Network = /** @class */ (function () {
body: jsonString
};
return fetch("/api/envelope/".concat(envelopeKey, "?index=").concat(documentId), options)
.then(this.handleResponse)
.then(function (res) {
console.log(res);
res.json();
if (!res.ok) {
return false;
}
;
return true;
});
};
Network.prototype.handleResponse = function (res) {
if (!res.ok) {
console.log("Request failed with status ".concat(res.status));
return res;
}
else {
return res;
}
};
return Network;
}());
var UI = /** @class */ (function () {

File diff suppressed because one or more lines are too long