You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2024/11/18 11:40:47 UTC

(myfaces-tobago) branch tobago-5.x updated: feat: Add PageRenderer support for PartialViewContext.renderAll (#5692)

This is an automated email from the ASF dual-hosted git repository.

hnoeth pushed a commit to branch tobago-5.x
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/tobago-5.x by this push:
     new aecda114b8 feat: Add PageRenderer support for PartialViewContext.renderAll (#5692)
aecda114b8 is described below

commit aecda114b85295a490db1bf0fe56bd99edd79bd3
Author: Carsten Dimmek <ca...@gmail.com>
AuthorDate: Mon Nov 18 09:55:35 2024 +0100

    feat: Add PageRenderer support for PartialViewContext.renderAll (#5692)
    
    Issue: TOBAGO-2366
    
    (cherry picked from commit 4c79934ca4cc5b1eec5ec3699ae8cc9cd21278c6)
---
 .../tobago/internal/renderkit/renderer/PageRenderer.java       | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
index 32287e27a9..71cdfbae34 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
@@ -60,6 +60,7 @@ import javax.faces.component.UIOutput;
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
+import javax.faces.context.PartialViewContext;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
@@ -130,7 +131,7 @@ public class PageRenderer<T extends AbstractUIPage> extends RendererBase<T> {
     final UIViewRoot viewRoot = facesContext.getViewRoot();
     final String viewId = viewRoot.getViewId();
     final String formAction = externalContext.encodeActionURL(viewHandler.getActionURL(facesContext, viewId));
-    final boolean ajax = facesContext.getPartialViewContext().isAjaxRequest();
+    final PartialViewContext partialViewContext = facesContext.getPartialViewContext();
 
     final String contentType = writer.getContentTypeWithCharSet();
     ResponseUtils.ensureContentTypeHeader(facesContext, contentType);
@@ -144,7 +145,7 @@ public class PageRenderer<T extends AbstractUIPage> extends RendererBase<T> {
 
     final Locale locale = viewRoot.getLocale();
 
-    if (!facesContext.getPartialViewContext().isAjaxRequest()) {
+    if (!partialViewContext.isAjaxRequest() || partialViewContext.isRenderAll()) {
       writer.startElement(HtmlElements.HTML);
       if (locale != null) {
         final String language = locale.getLanguage();
@@ -241,7 +242,7 @@ public class PageRenderer<T extends AbstractUIPage> extends RendererBase<T> {
     writer.startElement(HtmlElements.SPAN);
     writer.writeIdAttribute(clientId + ComponentUtils.SUB_SEPARATOR + "jsf-state-container");
     writer.flush();
-    if (!ajax) {
+    if (!partialViewContext.isAjaxRequest() || partialViewContext.isRenderAll()) {
       viewHandler.writeState(facesContext);
     }
     writer.endElement(HtmlElements.SPAN);
@@ -318,6 +319,7 @@ public class PageRenderer<T extends AbstractUIPage> extends RendererBase<T> {
 
     final UIViewRoot viewRoot = facesContext.getViewRoot();
     final TobagoResponseWriter writer = getResponseWriter(facesContext);
+    final PartialViewContext partialViewContext = facesContext.getPartialViewContext();
 
     writer.endElement(HtmlElements.FORM);
 
@@ -329,7 +331,7 @@ public class PageRenderer<T extends AbstractUIPage> extends RendererBase<T> {
     writer.endElement(HtmlElements.NOSCRIPT);
     writer.endElement(HtmlElements.TOBAGO_PAGE);
 
-    if (!facesContext.getPartialViewContext().isAjaxRequest()) {
+    if (!partialViewContext.isAjaxRequest() || partialViewContext.isRenderAll()) {
       final List<UIComponent> bodyResources = viewRoot.getComponentResources(facesContext, BODY_TARGET);
       for (final UIComponent bodyResource : bodyResources) {
         bodyResource.encodeAll(facesContext);