- improve IE support
This commit is contained in:
parent
b05a179277
commit
be0aa87d66
|
@ -19,19 +19,20 @@ import org.adempiere.webui.part.AbstractUIPart;
|
||||||
import org.adempiere.webui.theme.ITheme;
|
import org.adempiere.webui.theme.ITheme;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.adempiere.webui.window.LoginWindow;
|
import org.adempiere.webui.window.LoginWindow;
|
||||||
import org.zkoss.zk.au.out.AuScript;
|
import org.zkoss.zhtml.Text;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
import org.zkoss.zk.ui.UiException;
|
import org.zkoss.zk.ui.UiException;
|
||||||
import org.zkoss.zk.ui.metainfo.PageDefinition;
|
import org.zkoss.zk.ui.metainfo.PageDefinition;
|
||||||
import org.zkoss.zk.ui.util.Clients;
|
|
||||||
import org.zkoss.zkex.zul.Borderlayout;
|
import org.zkoss.zkex.zul.Borderlayout;
|
||||||
import org.zkoss.zkex.zul.Center;
|
import org.zkoss.zkex.zul.Center;
|
||||||
import org.zkoss.zkex.zul.East;
|
import org.zkoss.zkex.zul.East;
|
||||||
import org.zkoss.zkex.zul.North;
|
import org.zkoss.zkex.zul.North;
|
||||||
import org.zkoss.zkex.zul.South;
|
import org.zkoss.zkex.zul.South;
|
||||||
import org.zkoss.zkex.zul.West;
|
import org.zkoss.zkex.zul.West;
|
||||||
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Vbox;
|
import org.zkoss.zul.Vbox;
|
||||||
|
import org.zkoss.zul.Window;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -45,6 +46,7 @@ public class WLogin extends AbstractUIPart
|
||||||
|
|
||||||
private IWebClient app;
|
private IWebClient app;
|
||||||
private Borderlayout layout;
|
private Borderlayout layout;
|
||||||
|
private Window browserWarningWindow;
|
||||||
|
|
||||||
public WLogin(IWebClient app)
|
public WLogin(IWebClient app)
|
||||||
{
|
{
|
||||||
|
@ -81,10 +83,16 @@ public class WLogin extends AbstractUIPart
|
||||||
if (!AEnv.isBrowserSupported())
|
if (!AEnv.isBrowserSupported())
|
||||||
{
|
{
|
||||||
//TODO: localization
|
//TODO: localization
|
||||||
String msg = "You might experience slow performance and user interface anomalies using your current browser to access the application. We recommend the use of Firefox, Google Chrome or Apple Safari to access the application.";
|
String msg = "You might experience slow performance and user interface anomalies using your current browser to access the application. We recommend the use of Firefox, Google Chrome or Apple Safari.";
|
||||||
String script = "alert('" + msg + "')";
|
browserWarningWindow = new Window();
|
||||||
AuScript aus = new AuScript(null, script);
|
Div div = new Div();
|
||||||
Clients.response(aus);
|
div.setStyle("font-size: 9pt");
|
||||||
|
div.appendChild(new Text(msg));
|
||||||
|
browserWarningWindow.appendChild(div);
|
||||||
|
browserWarningWindow.setPosition("top,right");
|
||||||
|
browserWarningWindow.setWidth("550px");
|
||||||
|
browserWarningWindow.setPage(page);
|
||||||
|
browserWarningWindow.doOverlapped();
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -166,6 +174,8 @@ public class WLogin extends AbstractUIPart
|
||||||
public void detach() {
|
public void detach() {
|
||||||
layout.detach();
|
layout.detach();
|
||||||
layout = null;
|
layout = null;
|
||||||
|
if (browserWarningWindow != null)
|
||||||
|
browserWarningWindow.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Component getComponent() {
|
public Component getComponent() {
|
||||||
|
|
|
@ -598,6 +598,25 @@ public final class AEnv
|
||||||
return supported;
|
return supported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if user agent is internet explorer
|
||||||
|
*/
|
||||||
|
public static boolean isInternetExplorer()
|
||||||
|
{
|
||||||
|
Execution execution = Executions.getCurrent();
|
||||||
|
if (execution == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Object n = execution.getNativeRequest();
|
||||||
|
if (n instanceof ServletRequest) {
|
||||||
|
String userAgent = Servlets.getUserAgent((ServletRequest) n);
|
||||||
|
if (userAgent.indexOf("MSIE ") >= 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param parent
|
* @param parent
|
||||||
|
|
|
@ -91,8 +91,8 @@ public class MenuPanel extends Panel implements EventListener
|
||||||
menuTree.setMultiple(false);
|
menuTree.setMultiple(false);
|
||||||
menuTree.setId("mnuMain");
|
menuTree.setId("mnuMain");
|
||||||
menuTree.setWidth("100%");
|
menuTree.setWidth("100%");
|
||||||
// menuTree.setHeight("96%");
|
|
||||||
menuTree.setVflex(true);
|
menuTree.setVflex(true);
|
||||||
|
menuTree.setFixedLayout(false);
|
||||||
menuTree.setPageSize(-1); // Due to bug in the new paging functionality
|
menuTree.setPageSize(-1); // Due to bug in the new paging functionality
|
||||||
|
|
||||||
menuTree.setStyle("border: none");
|
menuTree.setStyle("border: none");
|
||||||
|
@ -143,7 +143,7 @@ public class MenuPanel extends Panel implements EventListener
|
||||||
|
|
||||||
private void generateMenu(Treechildren treeChildren, MTreeNode mNode)
|
private void generateMenu(Treechildren treeChildren, MTreeNode mNode)
|
||||||
{
|
{
|
||||||
Enumeration nodeEnum = mNode.children();
|
Enumeration<?> nodeEnum = mNode.children();
|
||||||
|
|
||||||
while(nodeEnum.hasMoreElements())
|
while(nodeEnum.hasMoreElements())
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.adempiere.webui.panel;
|
||||||
|
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.AutoComplete;
|
import org.adempiere.webui.component.AutoComplete;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
import org.adempiere.webui.component.Panel;
|
import org.adempiere.webui.component.Panel;
|
||||||
|
@ -92,15 +93,27 @@ public class TreeSearchPanel extends Panel implements EventListener, TreeDataLis
|
||||||
lblSearch.setValue(Msg.getMsg(Env.getCtx(),"TreeSearch").replaceAll("&", "") + ":");
|
lblSearch.setValue(Msg.getMsg(Env.getCtx(),"TreeSearch").replaceAll("&", "") + ":");
|
||||||
lblSearch.setTooltiptext(Msg.getMsg(Env.getCtx(),"TreeSearchText"));
|
lblSearch.setTooltiptext(Msg.getMsg(Env.getCtx(),"TreeSearchText"));
|
||||||
div.appendChild(lblSearch);
|
div.appendChild(lblSearch);
|
||||||
div.setStyle("display: inline-block; height: 20px; margin-bottom: 10px; vertical-align: middle");
|
String divStyle = "height: 20px; vertical-align: middle;";
|
||||||
|
if (!AEnv.isInternetExplorer())
|
||||||
|
{
|
||||||
|
divStyle += "margin-bottom: 10px; display: inline-block;";
|
||||||
|
}
|
||||||
|
div.setStyle(divStyle);
|
||||||
|
|
||||||
cmbSearch = new AutoComplete();
|
cmbSearch = new AutoComplete();
|
||||||
cmbSearch.setAutodrop(true);
|
cmbSearch.setAutodrop(true);
|
||||||
cmbSearch.addEventListener(Events.ON_CHANGE, this);
|
cmbSearch.addEventListener(Events.ON_CHANGE, this);
|
||||||
|
if (AEnv.isInternetExplorer())
|
||||||
|
{
|
||||||
|
cmbSearch.setWidth("200px");
|
||||||
|
}
|
||||||
|
|
||||||
this.appendChild(div);
|
this.appendChild(div);
|
||||||
this.appendChild(cmbSearch);
|
this.appendChild(cmbSearch);
|
||||||
this.setStyle("height: 20px;");
|
if (!AEnv.isInternetExplorer())
|
||||||
|
{
|
||||||
|
this.setStyle("height: 20px;");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addTreeItem(Treeitem treeItem)
|
private void addTreeItem(Treeitem treeItem)
|
||||||
|
|
|
@ -59,4 +59,5 @@ public interface ITheme {
|
||||||
|
|
||||||
//stylesheet url
|
//stylesheet url
|
||||||
public static final String THEME_STYLESHEET = "/css/theme.css.dsp";
|
public static final String THEME_STYLESHEET = "/css/theme.css.dsp";
|
||||||
|
public static final String THEME_STYLESHEET_BY_BROWSER = "/css/theme*.css.dsp*";
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,13 @@ public final class ThemeManager {
|
||||||
return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_STYLESHEET;
|
return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_STYLESHEET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return url of theme stylesheet by browser
|
||||||
|
*/
|
||||||
|
public static String getStyleSheetByBrowser() {
|
||||||
|
return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_STYLESHEET_BY_BROWSER;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return title text for the browser window
|
* @return title text for the browser window
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,6 +21,7 @@ package org.zkoss.zkmax.zul.render;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Execution;
|
import org.zkoss.zk.ui.Execution;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
@ -46,7 +47,7 @@ public class Combobox2Default implements ComponentRenderer {
|
||||||
final String zcls = self.getZclass();
|
final String zcls = self.getZclass();
|
||||||
final Execution exec = Executions.getCurrent();
|
final Execution exec = Executions.getCurrent();
|
||||||
|
|
||||||
String tableStyle = "display:inline-block";
|
String tableStyle = AEnv.isInternetExplorer() ? "display:inline" : "display:inline-block";
|
||||||
String inputAttrs = self.getInnerAttrs();
|
String inputAttrs = self.getInnerAttrs();
|
||||||
if (inputAttrs.indexOf("style") >= 0) {
|
if (inputAttrs.indexOf("style") >= 0) {
|
||||||
inputAttrs = inputAttrs.substring(0, inputAttrs.indexOf("style"));
|
inputAttrs = inputAttrs.substring(0, inputAttrs.indexOf("style"));
|
||||||
|
|
|
@ -6,6 +6,7 @@ Copyright (C) 2007 Ashley G Ramdass.
|
||||||
<?init zscript="theme.zs" ?>
|
<?init zscript="theme.zs" ?>
|
||||||
<?link rel="icon" type="image/png" href="${browserIcon}"?>
|
<?link rel="icon" type="image/png" href="${browserIcon}"?>
|
||||||
<?link rel="stylesheet" type="text/css" href="${themeStyleSheet}"?>
|
<?link rel="stylesheet" type="text/css" href="${themeStyleSheet}"?>
|
||||||
|
<?link rel="stylesheet" type="text/css" href="${themeStyleSheetByBrowser}"?>
|
||||||
<?link rel="stylesheet" type="text/css" href="css/PAPanel.css"?>
|
<?link rel="stylesheet" type="text/css" href="css/PAPanel.css"?>
|
||||||
<zk>
|
<zk>
|
||||||
<window use="org.adempiere.webui.AdempiereWebUI"/>
|
<window use="org.adempiere.webui.AdempiereWebUI"/>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
var themeStyleSheet = ThemeManager.getStyleSheet();
|
var themeStyleSheet = ThemeManager.getStyleSheet();
|
||||||
|
var themeStyleSheetByBrowser = ThemeManager.getStyleSheetByBrowser();
|
||||||
var browserIcon = ThemeManager.getBrowserIcon();
|
var browserIcon = ThemeManager.getBrowserIcon();
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<%@ page contentType="text/css;charset=UTF-8" %>
|
||||||
|
<%@ taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" %>
|
||||||
|
|
||||||
|
.login-box-body {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
Loading…
Reference in New Issue