Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 25 additions & 8 deletions java/src/main/java/com/genexus/internet/HttpContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,10 @@ public void ajax_sending_grid_row(com.genexus.webpanels.GXWebRow row)

private static HashMap<String, Messages> cachedMessages = new HashMap<String, Messages>();
private String currentLanguage = null;
private Vector<Object> userStyleSheetFiles = new Vector<Object>();
private String themekbPrefix;
private String themestyleSheet;
private String themeurlBuildNumber;

private boolean isServiceWorkerDefined()
{
Expand Down Expand Up @@ -457,7 +461,7 @@ private String FetchCustomCSS()
return cssContent;
}

public void AddThemeStyleSheetFile(String kbPrefix, String styleSheet, String urlBuildNumber)
public void CloseStyles()
{
String cssContent = FetchCustomCSS();
boolean bHasCustomContent = ! cssContent.isEmpty();
Expand All @@ -466,26 +470,37 @@ public void AddThemeStyleSheetFile(String kbPrefix, String styleSheet, String ur
writeTextNL("<style id=\"gx-inline-css\">" + cssContent + "</style>");
styleSheets.add(getRequest().getServletPath());
}
String[] referencedFiles = ThemeHelper.getThemeCssReferencedFiles(PrivateUtilities.removeExtension(styleSheet));
String[] referencedFiles = ThemeHelper.getThemeCssReferencedFiles(PrivateUtilities.removeExtension(themestyleSheet));
for (int i=0; i<referencedFiles.length; i++)
{
String file = referencedFiles[i];
String extension = PrivateUtilities.getExtension(file);
if (extension != null)
{
if (extension.equals("css"))
AddStyleSheetFile(file, urlBuildNumber, false, bHasCustomContent);
AddStyleSheetFile(file, themeurlBuildNumber, false, bHasCustomContent);
else if (extension.equals("js"))
AddDeferredJavascriptSource(file, urlBuildNumber);
AddDeferredJavascriptSource(file, themeurlBuildNumber);
}
}
AddStyleSheetFile(kbPrefix + "Resources/" + getLanguage() + "/" + styleSheet, urlBuildNumber, true, bHasCustomContent);
for (Object data : this.userStyleSheetFiles)
{
String[] sdata = (String[]) data;
AddStyleSheetFile(sdata[0], sdata[1], false, false);
}
AddStyleSheetFile(themekbPrefix + "Resources/" + getLanguage() + "/" + themestyleSheet, themeurlBuildNumber, true, bHasCustomContent);
}

public void AddThemeStyleSheetFile(String kbPrefix, String styleSheet)
{
AddThemeStyleSheetFile(kbPrefix, styleSheet, "");
}
public void AddThemeStyleSheetFile(String kbPrefix, String styleSheet, String urlBuildNumber)
{
this.themekbPrefix = kbPrefix;
this.themestyleSheet = styleSheet;
this.themeurlBuildNumber = urlBuildNumber;
}

public void AddStyleSheetFile(String styleSheet)
{
Expand All @@ -495,7 +510,7 @@ public void AddStyleSheetFile(String styleSheet)
public void AddStyleSheetFile(String styleSheet, String urlBuildNumber)
{
urlBuildNumber = getURLBuildNumber(styleSheet, urlBuildNumber);
AddStyleSheetFile(styleSheet, urlBuildNumber, false);
userStyleSheetFiles.add(new String[] { styleSheet, urlBuildNumber });
}

private String getURLBuildNumber(String resourcePath, String urlBuildNumber)
Expand All @@ -520,13 +535,15 @@ private void AddStyleSheetFile(String styleSheet, String urlBuildNumber, boolean
if (!styleSheets.contains(styleSheet))
{
styleSheets.add(styleSheet);
String sUncachedURL = oldConvertURL(styleSheet) + urlBuildNumber;
String sLayerName = styleSheet.replace("/", "_").replace(".","_");
if (!this.getHtmlHeaderClosed() && this.isEnabled)
{
String sRelAtt = (isDeferred ? "rel=\"preload\" as=\"style\" " : "rel=\"stylesheet\"");
if (isGxThemeHidden)
writeTextNL("<link id=\"gxtheme_css_reference\" " + sRelAtt + " type=\"text/css\" href=\"" + oldConvertURL(styleSheet) + urlBuildNumber + "\" " + htmlEndTag(HTMLElement.LINK));
writeTextNL("<link id=\"gxtheme_css_reference\" " + sRelAtt + " type=\"text/css\" href=\"" + sUncachedURL + "\" " + htmlEndTag(HTMLElement.LINK));
else
writeTextNL("<link " + sRelAtt + " type=\"text/css\" href=\"" + oldConvertURL(styleSheet) + urlBuildNumber + "\" " + htmlEndTag(HTMLElement.LINK));
writeTextNL("<style data-gx-href=\""+ sUncachedURL + "\"> @import url(\"" + sUncachedURL + "\") layer(" + sLayerName + ") </style>");
}
else
{
Expand Down