WARNING: The [sjs-3] engine was deprecated, use [sjs-4] instead.

File.prototype.inline()

Inline a file.

Syntax

file.inline() string file.inline(wrap bool) string file.inline(wrap bool, context File, request File, response File) string

Parameters

wrap bool

Wrap each file in unique div to make client-side tools make them responsive.

context File

Reference the context of the request - the page being visited. It defaults to the context file of the current transaction.

request File

The request file that holds all input data, typically provided by the HTTP request, but may be modified by the callee, particularly for testing purposes. It defaults to the request file of the current transaction.

response File

The response argument is a reference to the file that shall be decorated with response metadata like statusCode, location or the head string attribute. It defaults to the response file of the current transaction.

Description

Inline a file via running its respective .Inline method in an isolated VM.

The .inline() method returns the body of the child transaction’s response file.

Note that before .inline() returns the results, Boomla applies, some post processing like namespacing CSS class selectors.

The location and statusCode field of the child transaction are also merged respecting the following rules:

  • For 3xx statusCodes, the location string attribute must be set.
  • If the location string attribute is set and the statusCode is left unchanged, the statusCode will default to 303.
  • A 5xx statusCode takes precedent over any statuscode < 500.
  • A 4xx statusCode takes precedent over any statuscode < 400.
  • A 3xx statusCode takes precedent over any statuscode < 300.
  • The statusCode 0 and 200 are equivalents.
  • If a statusCode is returned by a child transaction that falls within the same range (3xx, 4xx, 5xx) as already set on the response file of the current transaction, the status code of the current transaction is not changed.

Examples

Simple example of child returning hello world. Note that the response is wrapped in a div so that client-side tools can make it responsive.

Simple example of child returning hello world, this time with all arguments specified.

Do not wrap child.

Child throws an error.

Pass on head tags. Note that the response file is passed to f.inline(), and so it is decorated with the head tags requested by the child. If you pass a different file instead of response, that file will be decorated instead.

Merge head tags for all transactions.

If the child returns a status-code higher than that of the current transaction (the response file), the status-code is updated.