annotate framework/env/slot/set_layout.lua @ 492:93ebbc1e5dbc
Allow actions to directly return content (e.g. for XMLHttpRequests) by calling slot.set_layout(...) during request handling
author |
jbe |
date |
Tue Jun 27 17:34:02 2017 +0200 (2017-06-27) |
parents |
c3d539e33710 |
children |
9f9a67c8f6f5 |
rev |
line source |
jbe/bsw@0
|
1 --[[--
|
jbe/bsw@0
|
2 slot.set_layout(
|
jbe/bsw@0
|
3 layout_ident, -- name of layout or nil for binary data in slot named "data"
|
jbe/bsw@0
|
4 content_type -- content-type to be sent to the browser, or nil for default
|
jbe/bsw@0
|
5 )
|
jbe/bsw@0
|
6
|
jbe/bsw@0
|
7 This function selects which layout should be used when calling slot.render_layout(). If no layout is selected by passing nil as first argument, then no layout will be used, and the slot named "data" is used plainly. The second argument to slot.set_layout is the content-type which is sent to the browser.
|
jbe/bsw@0
|
8
|
jbe/bsw@0
|
9 --]]--
|
jbe/bsw@0
|
10
|
jbe/bsw@0
|
11 function slot.set_layout(layout_ident, content_type)
|
jbe@492
|
12 local in_progress = request.is_in_progress()
|
jbe@262
|
13 request.configure(function()
|
jbe@262
|
14 slot._current_layout = layout_ident
|
jbe@262
|
15 slot._content_type = content_type
|
jbe@492
|
16 if in_progress then
|
jbe@492
|
17 slot._layout_set = true
|
jbe@492
|
18 end
|
jbe@262
|
19 end)
|
jbe/bsw@0
|
20 end
|