This commit is contained in:
Jonathan Jenne
2023-11-20 10:56:25 +01:00
parent 36e441106a
commit ea35ed0e29
12 changed files with 83 additions and 100 deletions

View File

@@ -40,36 +40,5 @@ namespace EnvelopeGenerator.Web.Controllers
return ErrorResponse(e);
}
}
//[HttpPost]
//[Route("api/document/{envelopeKey}")]
//public async Task<IActionResult> Update(string envelopeKey)
//{
// try
// {
// logger.Info("DocumentController/Update");
// // Validate Envelope Key and load envelope
// envelopeService.EnsureValidEnvelopeKey(envelopeKey);
// EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
// // Load Document info
// var Request = ControllerContext.HttpContext.Request;
// var document = envelopeService.GetDocument(Request, envelopeKey);
// // Update the document with new data
// await envelopeService.UpdateDocument(Request.Body, document.Filepath);
// // Add history entry
// envelopeService.InsertHistoryEntrySigned(response);
// return Ok();
// }
// catch (Exception e)
// {
// return ErrorResponse(e);
// }
//}
}
}

View File

@@ -8,7 +8,6 @@ namespace EnvelopeGenerator.Web.Controllers
public class ActionObject
{
public string? ActionType { get; set; }
public string? ActionDescription { get; set; }
}
public class HistoryController : BaseController
@@ -33,7 +32,6 @@ namespace EnvelopeGenerator.Web.Controllers
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
string actionTypeString = action.ActionType;
string actionDescription = action.ActionDescription;
if (!Enum.TryParse<EnvelopeHistoryActionType>(actionTypeString, out var actionType))
{
@@ -42,7 +40,6 @@ namespace EnvelopeGenerator.Web.Controllers
envelopeService.InsertHistoryEntry(new EnvelopeHistoryEntry()
{
ActionDescription = actionDescription,
ActionDate = DateTime.Now,
ActionType = actionType,
EnvelopeId = response.Envelope.Id,

View File

@@ -110,7 +110,6 @@ namespace EnvelopeGenerator.Web.Services
{
return historyModel.Insert(new EnvelopeHistoryEntry()
{
ActionDescription = "Dokument wurde signiert",
ActionDate = DateTime.Now,
ActionType = EnvelopeHistoryActionType.Signed,
EnvelopeId = response.Envelope.Id,

13
EnvelopeGenerator.Web/package-lock.json generated Normal file
View File

@@ -0,0 +1,13 @@
{
"name": "EnvelopeGenerator.Web",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"prettier": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
"integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw=="
}
}
}

View File

@@ -0,0 +1,15 @@
{
"name": "EnvelopeGenerator.Web",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"prettier": "^3.1.0"
}
}

View File

@@ -0,0 +1,8 @@
const config = {
trailingComma: "es5",
tabWidth: 4,
semi: false,
singleQuote: true,
};
export default config;

View File

@@ -70,6 +70,35 @@
return annotation
}
async createFrameAnnotation(annotation, receiver) {
const left = annotation.boundingBox.left - 25;
const top = annotation.boundingBox.top - 25;
const width = 150;
const height = 75;
const imageUrl = await this.Annotation.createAnnotationFrameBlob(receiver.name, width, height);
const request = await fetch(imageUrl);
const blob = await request.blob();
const imageAttachmentId = await this.Instance.createAttachment(blob);
const frameAnnotation = new PSPDFKit.Annotations.ImageAnnotation({
pageIndex: annotation.pageIndex,
isSignature: false,
readOnly: true,
locked: true,
lockedContents: true,
contentType: 'image/png',
imageAttachmentId,
description: 'FRAME',
boundingBox: new PSPDFKit.Geometry.Rect({
left: left,
top: top,
width: width,
height: height,
}),
});
}
async createAnnotationFrameBlob(receiverName, width, height) {
const canvas = document.createElement("canvas");
canvas.width = width;

View File

@@ -62,8 +62,7 @@ class App {
const annotations = this.Annotation.createAnnotations(this.currentDocument)
const createdAnnotations = await this.Instance.create(annotations)
const description = "Umschlag wurde geöffnet"
await this.Network.postHistory(this.envelopeKey, ActionType.Seen, description);
await this.Network.postHistory(this.envelopeKey, ActionType.Seen)
} catch (e) {
console.error(e)
}
@@ -77,47 +76,12 @@ class App {
handleAnnotationsChange() {}
async handleAnnotationsCreate(createdAnnotations) {
console.log("annotations created");
console.log(createdAnnotations.toJS())
const annotation = createdAnnotations.toJS()[0];
const isFormField = !!annotation.formFieldName;
const isSignature = !!annotation.isSignature;
if (isFormField === false && isSignature === true) {
const left = annotation.boundingBox.left - 25;
const top = annotation.boundingBox.top - 25;
const width = 150;
const height = 75;
console.log(annotation.boundingBox)
const imageUrl = await this.Annotation.createAnnotationFrameBlob(this.currentReceiver.name, width, height);
const request = await fetch(imageUrl);
const blob = await request.blob();
const imageAttachmentId = await this.Instance.createAttachment(blob);
const frameAnnotation = new PSPDFKit.Annotations.ImageAnnotation({
pageIndex: annotation.pageIndex,
isSignature: false,
readOnly: true,
locked: true,
lockedContents: true,
contentType: 'image/png',
imageAttachmentId,
description: 'FRAME',
boundingBox: new PSPDFKit.Geometry.Rect({
left: left,
top: top,
width: width,
height: height,
}),
});
this.Instance.create(frameAnnotation);
await this.Annotation.createFrameAnnotation(annotation, this.currentReceiver)
}
}
@@ -169,6 +133,9 @@ class App {
return false;
}
// Redirect to success page after saving to database
window.location.href = `/EnvelopeKey/${this.envelopeKey}/Success`
} catch (e) {
console.error(e);
return false;

View File

@@ -9,25 +9,6 @@
.then(res => res.arrayBuffer());
}
postDocument(envelopeKey, documentId, buffer) {
const url = `/api/document/${envelopeKey}?index=${documentId}`;
const options = {
credentials: "include",
method: "POST",
body: buffer
}
console.debug("PostDocument/Calling url: " + url)
return fetch(url, this.withCSRFToken(options))
.then(this.handleResponse)
.then((res) => {
if (!res.ok) {
return false;
};
return true;
});
}
postEnvelope(envelopeKey, documentId, jsonString) {
const url = `/api/envelope/${envelopeKey}?index=${documentId}`;
const options = {
@@ -47,12 +28,11 @@
});
}
postHistory(envelopeKey, actionType, actionDescription) {
postHistory(envelopeKey, actionType) {
const url = `/api/history/${envelopeKey}`;
const data = {
actionDescription: actionDescription,
actionType: actionType.toString()
actionType: actionType
}
const options = {