From 9c27b7dd217fc559de36c45eb56af94396a27a36 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 8 Oct 2021 13:53:41 -0700 Subject: [PATCH] (REF) message_admin - Split the steps of loading data and rendering This will make it easier to inject different values while editing --- ext/message_admin/ang/crmMsgadm/Preview.js | 32 ++++++++-------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/ext/message_admin/ang/crmMsgadm/Preview.js b/ext/message_admin/ang/crmMsgadm/Preview.js index f35afbb279..11bb3d8a7c 100644 --- a/ext/message_admin/ang/crmMsgadm/Preview.js +++ b/ext/message_admin/ang/crmMsgadm/Preview.js @@ -50,36 +50,20 @@ }; function requestAdhocExample() { - var adhocExample; try { - adhocExample = JSON.parse($ctrl.adhocExampleJson); + return $q.resolve(JSON.parse($ctrl.adhocExampleJson.data)); } catch (err) { return $q.reject(ts('Malformed JSON example')); } - return crmApi4('WorkflowMessage', 'render', { - workflow: adhocExample.data.workflow, - values: adhocExample.data.modelProps, - messageTemplate: model.revisions[$ctrl.revisionId].rec - }).then(function(response) { - return response[0]; - }); } function requestStoredExample() { - // For a dev working on example, it's easier if the example is always loaded fresh. return crmApi4('ExampleData', 'get', { where: [["name", "=", model.examples[$ctrl.exampleId].name]], - select: ['name', 'file', 'title', 'data'], - chain: { - "render": ["WorkflowMessage", "render", { - "workflow": "$data.workflow", - "values": "$data.modelProps", - "messageTemplate": model.revisions[$ctrl.revisionId].rec - }] - } + select: ['data'] }).then(function(response) { - return response[0].render[0]; + return response[0].data; }); } @@ -92,8 +76,14 @@ // $ctrl.preview = model.revisions[$ctrl.revisionId].rec; $ctrl.preview = {loading: true}; var rendering = $ctrl.isAdhocExample ? requestAdhocExample() : requestStoredExample(); - rendering.then(function(response) { - $ctrl.preview = response; + rendering.then(function(exampleData){ + return crmApi4('WorkflowMessage', 'render', { + workflow: exampleData.workflow, + values: exampleData.modelProps, + messageTemplate: model.revisions[$ctrl.revisionId].rec + }); + }).then(function(response) { + $ctrl.preview = response[0]; }, function(failure) { $ctrl.preview = {}; crmUiAlert({title: ts('Render failed'), text: failure.error_message, type: 'error'}); -- 2.25.1