IDEMPIERE-6085 HTMLExtension doesn't handle HTML_REPORT_THEME that starts with "~./" (#2288)
This commit is contained in:
parent
42fb2de77d
commit
81660c7fc7
|
@ -24,17 +24,20 @@ import org.apache.ecs.xhtml.body;
|
||||||
public interface IHTMLExtension {
|
public interface IHTMLExtension {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return css class prefix for report element
|
* Get CSS class prefix for HTML report element
|
||||||
|
* @return CSS class prefix for HTML report element
|
||||||
*/
|
*/
|
||||||
public String getClassPrefix();
|
public String getClassPrefix();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return url to report css
|
* Get URL to report CSS
|
||||||
|
* @return URL to report CSS
|
||||||
*/
|
*/
|
||||||
public String getStyleURL();
|
public String getStyleURL();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return url to report js
|
* Get URL to report javascript
|
||||||
|
* @return URL to report javascript
|
||||||
*/
|
*/
|
||||||
public String getScriptURL();
|
public String getScriptURL();
|
||||||
|
|
||||||
|
@ -61,11 +64,13 @@ public interface IHTMLExtension {
|
||||||
public void setWebAttribute (body reportBody);
|
public void setWebAttribute (body reportBody);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return absolute path to css style file
|
* Get absolute local file path to CSS file (typically for embedding the file content to HTML report)
|
||||||
|
* @return absolute local file path to CSS file
|
||||||
*/
|
*/
|
||||||
public String getFullPathStyle ();
|
public String getFullPathStyle ();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Get one or more links (<link ... >) to web font
|
||||||
* @return one or more links for web font
|
* @return one or more links for web font
|
||||||
*/
|
*/
|
||||||
String getWebFontLinks();
|
String getWebFontLinks();
|
||||||
|
|
|
@ -65,14 +65,14 @@ public class HTMLExtension implements IHTMLExtension {
|
||||||
|
|
||||||
String theme = MSysConfig.getValue(MSysConfig.HTML_REPORT_THEME, "/", Env.getAD_Client_ID(Env.getCtx()));
|
String theme = MSysConfig.getValue(MSysConfig.HTML_REPORT_THEME, "/", Env.getAD_Client_ID(Env.getCtx()));
|
||||||
|
|
||||||
if (! theme.startsWith("/") && !theme.startsWith("~./"))
|
if (!theme.startsWith("/") && !theme.startsWith(ThemeManager.ZK_URL_PREFIX_FOR_CLASSPATH_RESOURCE))
|
||||||
theme = "/" + theme;
|
theme = "/" + theme;
|
||||||
if (! theme.endsWith("/"))
|
if (! theme.endsWith("/"))
|
||||||
theme = theme + "/";
|
theme = theme + "/";
|
||||||
|
|
||||||
this.classPrefix = classPrefix;
|
this.classPrefix = classPrefix;
|
||||||
this.componentId = componentId;
|
this.componentId = componentId;
|
||||||
if (theme.startsWith("~./")) {
|
if (theme.startsWith(ThemeManager.ZK_URL_PREFIX_FOR_CLASSPATH_RESOURCE)) {
|
||||||
if (Executions.getCurrent() != null) {
|
if (Executions.getCurrent() != null) {
|
||||||
this.styleURL = Executions.encodeURL(theme + "css/report.css");
|
this.styleURL = Executions.encodeURL(theme + "css/report.css");
|
||||||
}
|
}
|
||||||
|
@ -197,12 +197,16 @@ public class HTMLExtension implements IHTMLExtension {
|
||||||
@Override
|
@Override
|
||||||
public String getFullPathStyle() {
|
public String getFullPathStyle() {
|
||||||
String theme = MSysConfig.getValue(MSysConfig.HTML_REPORT_THEME, "/", Env.getAD_Client_ID(Env.getCtx()));
|
String theme = MSysConfig.getValue(MSysConfig.HTML_REPORT_THEME, "/", Env.getAD_Client_ID(Env.getCtx()));
|
||||||
if (! theme.startsWith("/"))
|
if (!theme.startsWith("/") && !theme.startsWith(ThemeManager.ZK_URL_PREFIX_FOR_CLASSPATH_RESOURCE))
|
||||||
theme = "/" + theme;
|
theme = "/" + theme;
|
||||||
if (!theme.endsWith("/"))
|
if (!theme.endsWith("/"))
|
||||||
theme = theme + "/";
|
theme = theme + "/";
|
||||||
String resFile = theme + "css/report.css";
|
String resFile = theme + "css/report.css";
|
||||||
|
|
||||||
|
// translate ~./ url to classpath url
|
||||||
|
if (theme.startsWith(ThemeManager.ZK_URL_PREFIX_FOR_CLASSPATH_RESOURCE))
|
||||||
|
resFile = ThemeManager.toClassPathResourcePath(resFile);
|
||||||
|
|
||||||
URL urlFile = this.getClass().getResource(resFile);
|
URL urlFile = this.getClass().getResource(resFile);
|
||||||
if (urlFile == null) {
|
if (urlFile == null) {
|
||||||
resFile = "/css/report.css"; // default
|
resFile = "/css/report.css"; // default
|
||||||
|
|
Loading…
Reference in New Issue