|
23 | 23 |
|
24 | 24 | import org.springframework.web.filter.OncePerRequestFilter; |
25 | 25 |
|
26 | | -import grails.web.http.HttpHeaders; |
27 | | -import grails.web.mime.MimeType; |
| 26 | +import org.grails.web.sitemesh.GrailsLayoutDecoratorMapper; |
28 | 27 | import org.grails.web.util.GrailsApplicationAttributes; |
29 | 28 |
|
30 | 29 | /** |
|
36 | 35 | */ |
37 | 36 | public class TurboRequestFilter extends OncePerRequestFilter { |
38 | 37 |
|
| 38 | + private static final String TURBO_FRAME_LAYOUT = "turbo/frame"; |
| 39 | + |
39 | 40 | @Override |
40 | 41 | protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) |
41 | 42 | throws ServletException, IOException { |
42 | 43 |
|
43 | | - request.setAttribute(GrailsApplicationAttributes.CONTENT_FORMAT, TurboMimeType.TURBO_STREAM_FORMAT); |
44 | | - request.setAttribute(GrailsApplicationAttributes.RESPONSE_FORMAT, TurboMimeType.TURBO_STREAM_FORMAT); |
45 | | - request.setAttribute(GrailsApplicationAttributes.RESPONSE_MIME_TYPE, TurboMimeType.TURBO_STREAM); |
46 | | - response.setContentType(TurboMimeType.TURBO_STREAM.getName()); |
| 44 | + if (HttpServletRequestExtension.isTurboStream(request)) { |
| 45 | + request.setAttribute(GrailsApplicationAttributes.CONTENT_FORMAT, TurboMimeType.TURBO_STREAM_FORMAT); |
| 46 | + request.setAttribute(GrailsApplicationAttributes.RESPONSE_FORMAT, TurboMimeType.TURBO_STREAM_FORMAT); |
| 47 | + request.setAttribute(GrailsApplicationAttributes.RESPONSE_MIME_TYPE, TurboMimeType.TURBO_STREAM); |
| 48 | + response.setContentType(TurboMimeType.TURBO_STREAM.getName()); |
| 49 | + } |
| 50 | + |
| 51 | + if (HttpServletRequestExtension.isTurboFrame(request)) { |
| 52 | + request.setAttribute(GrailsLayoutDecoratorMapper.LAYOUT_ATTRIBUTE, TURBO_FRAME_LAYOUT); |
| 53 | + } |
47 | 54 |
|
48 | 55 | filterChain.doFilter(request, response); |
49 | 56 | } |
50 | 57 |
|
51 | 58 | @Override |
52 | 59 | protected boolean shouldNotFilter(HttpServletRequest request) { |
53 | | - return !HttpServletRequestExtension.isTurboStream(request); |
| 60 | + return !HttpServletRequestExtension.isTurboRequest(request); |
54 | 61 | } |
55 | 62 |
|
56 | 63 | } |
0 commit comments