Optimize data handling by embedding EnvelopeResponse in Razor Page, eliminating additional requests
This commit is contained in:
parent
1584fd6f1c
commit
6941a3db8d
@ -83,7 +83,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
var envelope = await _envelopeService.ReadByUuidAsync(uuid: decodedId.EnvelopeUuid, signature: decodedId.ReceiverSignature, withAll:true);
|
||||
database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history
|
||||
ViewData["EnvelopeKey"] = envelopeReceiverId;
|
||||
ViewData["EnveResponse"] = response;
|
||||
ViewData["EnvelopeResponse"] = response;
|
||||
return View("ShowEnvelope", envelope);
|
||||
}
|
||||
else
|
||||
|
||||
@ -44,6 +44,7 @@
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<script>
|
||||
const collapseNav = () => {
|
||||
document.addEventListener('click', function (event) {
|
||||
@ -57,8 +58,20 @@
|
||||
});
|
||||
}
|
||||
|
||||
@{
|
||||
var envelopeResponse = ViewData["EnvelopeResponse"];
|
||||
var settings = new Newtonsoft.Json.JsonSerializerSettings
|
||||
{
|
||||
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
|
||||
};
|
||||
var envelopeResponseJson = Newtonsoft.Json.JsonConvert.SerializeObject(envelopeResponse, settings);
|
||||
}
|
||||
|
||||
var envelopeResponse = @Html.Raw(envelopeResponseJson);
|
||||
console.log(envelopeResponse);
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
const app = new App("#app", "@ViewData["EnvelopeKey"]");
|
||||
const app = new App("#app", "@ViewData["EnvelopeKey"]", envelopeResponse);
|
||||
await app.init();
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -10,7 +10,7 @@ const ActionType = {
|
||||
}
|
||||
|
||||
class App {
|
||||
constructor(container, envelopeKey) {
|
||||
constructor(container, envelopeKey, envelopeResponse) {
|
||||
this.container = container
|
||||
this.envelopeKey = envelopeKey
|
||||
|
||||
@ -22,33 +22,15 @@ class App {
|
||||
this.currentDocument = null
|
||||
this.currentReceiver = null
|
||||
this.signatureCount = 0
|
||||
this.envelopeResponse = envelopeResponse;
|
||||
}
|
||||
|
||||
// This function will be called from the ShowEnvelope.razor page
|
||||
// and will trigger loading of the Editor Interface
|
||||
async init() {
|
||||
// Load the envelope from the database
|
||||
console.debug('Loading envelope from database..')
|
||||
const envelopeResponse = await this.Network.getEnvelope(this.envelopeKey)
|
||||
|
||||
if (envelopeResponse.fatal) {
|
||||
return Swal.fire({
|
||||
title: 'Fehler',
|
||||
text: 'Umschlag konnte nicht geladen werden!',
|
||||
icon: 'error',
|
||||
})
|
||||
}
|
||||
|
||||
if (envelopeResponse.error) {
|
||||
return Swal.fire({
|
||||
title: 'Warnung',
|
||||
text: 'Umschlag ist nicht mehr verfügbar.',
|
||||
icon: 'warning',
|
||||
})
|
||||
}
|
||||
|
||||
this.currentDocument = envelopeResponse.data.envelope.documents[0]
|
||||
this.currentReceiver = envelopeResponse.data.receiver
|
||||
this.currentDocument = this.envelopeResponse.envelope.documents[0]
|
||||
this.currentReceiver = this.envelopeResponse.receiver
|
||||
|
||||
// Load the document from the filestore
|
||||
console.debug('Loading document from filestore')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user