How to Create a Review Page with Read-Only Fields

Reviewing a request in read-only is a built-in feature in Kinetic Request CE. This can be used by creating a URL like:

http://my.server.com:8080/kinetic/sp...g/submissions//review

For ease of reading, without the http, that is:

my.server.com:8080/kinetic/space-slug/submissions//review

In this url, you replace my.server.com with the server, space-slug with your space slug, and with the full submission unique id. This url without the /review at the end will bring up the submission in read-write (on the current page it is on), but adding /review to the URL for the submission will display the request in review mode.

This is an example URL:

demo.kineticdata.com/kinetic/annes-playground/submissions/41ccafd6-49cf-11e6-9edf-938fa30c193b/review

Approvals are one common use of review request. Approvals often display the request being approved in review.

In the approval example, an HTML element would be used and would contain a div for the review:

ApprovalReviewSetup1

And then a load event would be set up to use a subform to load the review of the service request/item whose id, in this case, is stored in the Original Record field in the Hidden Questions section.

V5 Review Event

K.load({
  path: K('field[Originating Record]').value()+'/review',
  container: '#reviewPane',
  loaded: function(form) {  },
  created: function(data) {  },
  updated: function(data) {  },
  completed: function(data, action) {  }
});

Another common use of review is allowing the customer to see a review of their request before final submission. In this case, the HTML element looks the same:

ReviewPageSetup1

But the subform load event is just slightly different. Instead of pulling the necessary submission id out of a question, we want to use the current submission, which is available as K('submission').id().

V5-Review Page

K.load({
  path: K('submission').id()+'/review',
  container: '#reviewPane',
  loaded: function(form) {  },
  created: function(data) {  },
  updated: function(data) {  },
  completed: function(data, action) {  }
});