Compare commits

...

10 Commits

Author SHA1 Message Date
Muhammad Eko 943505d293 edit login 2024-05-14 11:24:23 +07:00
hengsin ca6bb3e335 IDEMPIERE-6089 Address refresh issue (#2313) 2024-04-15 17:52:59 +02:00
Carlos Ruiz 6ab6878eeb IDEMPIERE-6101 Account Info and other forms don't have Date Range Editor (#2308)
* IDEMPIERE-6101 Account Info doesn't have Date Range Editor

* - add DateRangeEditor to Archive Viewer, Fact Reconcile, Match, Trx Material forms
2024-04-15 17:52:15 +02:00
hengsin 76edaa9e1d IDEMPIERE-6100 Table Partitioning Issue with Tables having Index with where condition (#2307) 2024-04-15 17:52:15 +02:00
Peter Takács adea9db390 IDEMPIERE-6104 - Table Partitioning for List Type Key Columns (#2310) 2024-04-15 17:52:15 +02:00
hengsin 9799cebac8 IDEMPIERE-6099 Global Search Enhancements (#2305)
* IDEMPIERE-6099 Global Search Enhancements

* IDEMPIERE-6099 Global Search Enhancements
2024-04-15 17:52:15 +02:00
Carlos Ruiz 0d0c33d197 IDEMPIERE-6096 Implement regexp VFormat - improve message (#2306) 2024-04-15 17:52:15 +02:00
Peter Takács 4ac98a630a IDEMPIERE-6098 - Wrong Null Check in Dashboard Controller (#2304) 2024-04-15 17:52:15 +02:00
hengsin bca41fb13d IDEMPIERE-6078 2Pack issue for AD_Role_OrgAccess (#2303) 2024-04-15 17:52:15 +02:00
hengsin 81660c7fc7 IDEMPIERE-6085 HTMLExtension doesn't handle HTML_REPORT_THEME that starts with "~./" (#2288) 2024-04-15 17:52:15 +02:00
49 changed files with 714 additions and 127 deletions

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,17 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/bsh.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-validator.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cron4j.jar"/>
<classpathentry exported="true" kind="lib" path="lib/avalon-framework-api.jar"/>
<classpathentry exported="true" kind="lib" path="lib/htmlcompressor.jar"/>
<classpathentry exported="true" kind="lib" path="lib/yuicompressor.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -24,17 +24,20 @@ import org.apache.ecs.xhtml.body;
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();
/**
* @return url to report css
* Get URL to report CSS
* @return URL to report CSS
*/
public String getStyleURL();
/**
* @return url to report js
* Get URL to report javascript
* @return URL to report javascript
*/
public String getScriptURL();
@ -61,11 +64,13 @@ public interface IHTMLExtension {
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 ();
/**
* Get one or more links (&lt;link ... &gt;) to web font
* @return one or more links for web font
*/
String getWebFontLinks();

View File

@ -558,7 +558,7 @@ public class Login
ArrayList<KeyNamePair> list = new ArrayList<KeyNamePair>();
KeyNamePair[] retValue = null;
//
String sql = " SELECT DISTINCT r.UserLevel, r.ConnectionProfile,o.AD_Org_ID,o.Name,o.IsSummary,r.RoleType,r.IsClientAdministrator "
String sql = " SELECT DISTINCT r.UserLevel, r.ConnectionProfile,o.AD_Org_ID,o.Name, 'N' as IsSummary,r.RoleType,r.IsClientAdministrator "
+" FROM AD_Org o"
+" INNER JOIN AD_Role r on (r.AD_Role_ID=?)"
+" INNER JOIN AD_Client c on (c.AD_Client_ID=?)"

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,10 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/jpayment.jar"/>
<classpathentry exported="true" kind="lib" path="lib/payflow.jar"/>
<classpathentry exported="true" kind="lib" path="lib/Verisign.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -84,7 +84,7 @@ public class OrgRoleElementHandler extends AbstractElementHandler {
PoExporter filler = new PoExporter(ctx, document, po);
List<String> excludes = defaultExcludeList(X_AD_Role_OrgAccess.Table_Name);
filler.export(excludes);
filler.export(excludes, true);
}
@Override

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
@ -14,5 +14,10 @@
<classpathentry exported="true" kind="lib" path="lib/jasperreports-functions.jar"/>
<classpathentry exported="true" kind="lib" path="lib/olap4j.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmpcore.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,13 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/server/"/>
<classpathentry kind="src" path="src/main/servlet/"/>
<classpathentry kind="src" path="src/main/home/"/>
<classpathentry kind="src" output="target/classes" path="src/main/server">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/classes" path="src/main/servlet">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/classes" path="src/main/home">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,10 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="WEB-INF/src/"/>
<classpathentry kind="src" output="target/classes" path="WEB-INF/src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/ckez.jar"/>
<classpathentry exported="true" kind="lib" path="lib/daisydiff.jar"/>
<classpathentry exported="true" kind="lib" path="lib/owasp-java-html-sanitizer.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -35,7 +35,6 @@ import org.adempiere.webui.component.Button;
import org.adempiere.webui.component.Checkbox;
import org.adempiere.webui.component.Column;
import org.adempiere.webui.component.Columns;
import org.adempiere.webui.component.Datebox;
import org.adempiere.webui.component.Grid;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.component.ListModelTable;
@ -52,11 +51,13 @@ import org.adempiere.webui.component.VerticalBox;
import org.adempiere.webui.component.WListItemRenderer;
import org.adempiere.webui.component.Window;
import org.adempiere.webui.desktop.IDesktop;
import org.adempiere.webui.editor.WDateEditor;
import org.adempiere.webui.event.DialogEvents;
import org.adempiere.webui.panel.InfoPanel;
import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.theme.ThemeManager;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.adempiere.webui.window.DateRangeButton;
import org.adempiere.webui.window.Dialog;
import org.compiere.model.MAcctSchema;
import org.compiere.model.MAcctSchemaElement;
@ -164,8 +165,8 @@ public class WAcctViewer extends Window implements EventListener<Event>
private Label lSort = new Label();
private Label lGroup = new Label();
private Datebox selDateFrom = new Datebox();
private Datebox selDateTo = new Datebox();
private WDateEditor selDateFrom = new WDateEditor();
private WDateEditor selDateTo = new WDateEditor();
private Checkbox selDocument = new Checkbox();
private Checkbox displayQty = new Checkbox();
@ -327,9 +328,11 @@ public class WAcctViewer extends Window implements EventListener<Event>
row = rows.newRow();
row.appendChild(lDate);
hlayout = new Hlayout();
hlayout.appendChild(selDateFrom);
hlayout.appendChild(selDateFrom.getComponent());
hlayout.appendChild(new Label(" - "));
hlayout.appendChild(selDateTo);
hlayout.appendChild(selDateTo.getComponent());
DateRangeButton drb = (new DateRangeButton(selDateFrom, selDateTo));
hlayout.appendChild(drb);
row.appendChild(hlayout);
// Organization
@ -1193,8 +1196,8 @@ public class WAcctViewer extends Window implements EventListener<Event>
selTable.setEnabled(doc);
selRecord.setEnabled(doc);
//
selDateFrom.setEnabled(!doc);
selDateTo.setEnabled(!doc);
selDateFrom.setReadWrite(!doc);
selDateTo.setReadWrite(!doc);
selOrg.setEnabled(!doc);
selAcct.setEnabled(!doc);
sel1.setEnabled(!doc);

View File

@ -21,6 +21,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.compiere.model.I_AD_SearchDefinition;
@ -38,6 +39,7 @@ import org.compiere.model.Query;
import org.compiere.util.DB;
import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
@ -52,7 +54,9 @@ import org.zkoss.zul.Vlayout;
*
*/
public class DocumentSearchController implements EventListener<Event>{
/** Style for transaction code guide or execution error */
private static final String MESSAGE_LABEL_STYLE = "color: rgba(0,0,0,0.34)";
/** {@link A} component attribute to hold reference to corresponding {@link #SEARCH_RESULT} **/
private static final String SEARCH_RESULT = "search.result";
/** onSearchDocuments event **/
@ -64,6 +68,8 @@ public class DocumentSearchController implements EventListener<Event>{
private ArrayList<SearchResult> list;
/** Current selected index of {@link #list} **/
private int selected = -1;
/** True when showing transaction code available */
private boolean showingGuide = false;
/**
* default constructor
@ -92,7 +98,12 @@ public class DocumentSearchController implements EventListener<Event>{
* @param value
*/
public void search(String value) {
layout.getChildren().clear();
if (Util.isEmpty(value) || (value.startsWith("/") && value.indexOf(" ") < 0)) {
if (!showingGuide)
layout.getChildren().clear();
} else {
layout.getChildren().clear();
}
Events.echoEvent(ON_SEARCH_DOCUMENTS_EVENT, layout, value);
}
@ -103,12 +114,31 @@ public class DocumentSearchController implements EventListener<Event>{
*/
private void onSearchDocuments(String searchString) {
list = new ArrayList<SearchResult>();
if (Util.isEmpty(searchString)) {
if (Util.isEmpty(searchString) || (searchString.startsWith("/") && searchString.indexOf(" ") < 0)) {
// No search string, show available transaction code
if (!showingGuide) {
Query query = new Query(Env.getCtx(), I_AD_SearchDefinition.Table_Name, "TransactionCode IS NOT NULL", null);
List<MSearchDefinition> definitions = query.setOnlyActiveRecords(true).setOrderBy("TransactionCode").list();
for(MSearchDefinition definition : definitions) {
Label label = new Label("/"+definition.getTransactionCode() + " " + definition.getName());
label.setStyle(MESSAGE_LABEL_STYLE);
layout.appendChild(label);
}
showingGuide = true;
}
return;
}
showingGuide = false;
// Search and show results
List<SearchResult> list = doSearch(searchString);
if (list.size() > 0) {
if (list.size() == 1 && list.get(0).getRecordId() == -1) {
// DB error or query timeout
Label label = new Label(list.get(0).getLabel());
label.setStyle(MESSAGE_LABEL_STYLE);
layout.appendChild(label);
} else if (list.size() > 0) {
Collections.sort(list, new Comparator<SearchResult>() {
@Override
public int compare(SearchResult o1, SearchResult o2) {
@ -118,20 +148,47 @@ public class DocumentSearchController implements EventListener<Event>{
return r;
}
});
String matchString = searchString.toLowerCase();
if (searchString != null && searchString.startsWith("/") && searchString.indexOf(" ") > 1) {
// "/TransactionCode Search Text"
matchString = searchString.substring(searchString.indexOf(" ")+1).toLowerCase();
}
String windowName = null;
for(SearchResult result : list) {
if (windowName == null || !windowName.equals(result.getWindowName())) {
windowName = result.getWindowName();
Label label = new Label(windowName);
label.setStyle("padding: 3px; font-weight: bold; display: inline-block;");
LayoutUtils.addSclass("window-name", label);
layout.appendChild(label);
}
A a = new A();
a.setAttribute(SEARCH_RESULT, result);
a.setLabel(result.getLabel());
layout.appendChild(a);
a.setStyle("padding-left: 3px; display: inline-block;");
LayoutUtils.addSclass("search-result", a);
a.addEventListener(Events.ON_CLICK, this);
String label = result.getLabel();
if (!Util.isEmpty(matchString, true)) {
int match = label.toLowerCase().indexOf(matchString);
while (match >= 0) {
if (match > 0) {
a.appendChild(new Label(label.substring(0, match)));
Label l = new Label(label.substring(match, match+matchString.length()));
LayoutUtils.addSclass("highlight", l);
a.appendChild(l);
label = label.substring(match+matchString.length());
} else {
Label l = new Label(label.substring(0, matchString.length()));
LayoutUtils.addSclass("highlight", l);
a.appendChild(l);
label = label.substring(matchString.length());
}
match = label.toLowerCase().indexOf(matchString);
}
}
if (label.length() > 0)
a.appendChild(new Label(label));
}
layout.invalidate();
}
@ -146,7 +203,23 @@ public class DocumentSearchController implements EventListener<Event>{
final MRole role = MRole.get(Env.getCtx(), Env.getAD_Role_ID(Env.getCtx()), Env.getAD_User_ID(Env.getCtx()), true);
selected = -1;
Query query = new Query(Env.getCtx(), I_AD_SearchDefinition.Table_Name, "TransactionCode IS NULL", null);
// Search with or without transaction code
StringBuilder whereClause = new StringBuilder();
String transactionCode = null;
if (searchString != null && searchString.startsWith("/") && searchString.indexOf(" ") > 1) {
// "/TransactionCode Search Text"
transactionCode = searchString.substring(1, searchString.indexOf(" "));
searchString = searchString.substring(searchString.indexOf(" ")+1);
whereClause.append("Upper(TransactionCode) = ?");
} else {
// Search with definition that doesn't use transaction code
whereClause.append("TransactionCode IS NULL");
}
Query query = new Query(Env.getCtx(), I_AD_SearchDefinition.Table_Name, whereClause.toString(), null);
if (transactionCode != null)
query.setParameters(transactionCode.toUpperCase());
List<MSearchDefinition> definitions = query.setOnlyActiveRecords(true).list();
for(MSearchDefinition msd : definitions) {
MTable table = new MTable(Env.getCtx(), msd.getAD_Table_ID(), null);
@ -270,7 +343,15 @@ public class DocumentSearchController implements EventListener<Event>{
list.add(result);
}
} catch (SQLException e) {
e.printStackTrace();
SearchResult result = new SearchResult();
result.setRecordId(-1);
if (DB.getDatabase().isQueryTimeout(e)) {
result.setLabel(Msg.getMsg(Env.getCtx(), "Timeout"));
} else {
result.setLabel(Msg.getMsg(Env.getCtx(), "DBExecuteError"));
e.printStackTrace();
}
list.add(result);
} finally {
DB.close(rs, pstmt);
}

View File

@ -100,9 +100,13 @@ public class GlobalSearch extends Div implements EventListener<Event> {
bandbox.addEventListener(Events.ON_CHANGE, this);
bandbox.setCtrlKeys("#up#down");
bandbox.addEventListener(Events.ON_CTRL_KEY, this);
bandbox.addEventListener(Events.ON_FOCUS, e -> {
if (!bandbox.isOpen())
bandbox.setOpen(true);
});
Bandpopup popup = new Bandpopup();
ZKUpdateUtil.setWindowHeightX(popup, ClientInfo.get().desktopHeight-50);
ZKUpdateUtil.setWindowHeightX(popup, ClientInfo.get().desktopHeight-100);
bandbox.appendChild(popup);
tabbox = new Tabbox();
@ -139,15 +143,18 @@ public class GlobalSearch extends Div implements EventListener<Event> {
@Override
public void onEvent(Event event) throws Exception {
if (Events.ON_CHANGING.equals(event.getName())) {
//post ON_SEARCH_EVENT for ON_CHANGING from bandbox
// Post ON_SEARCH_EVENT for ON_CHANGING from bandbox
InputEvent inputEvent = (InputEvent) event;
String value = inputEvent.getValue();
String value = inputEvent.getValue();
// Auto switch to Search with "/"
if (value != null && value.startsWith("/") && tabbox.getSelectedIndex()==0)
tabbox.setSelectedIndex(1);
bandbox.setAttribute(LAST_ONCHANGING_ATTR, value);
Events.postEvent(ON_SEARCH_EVENT, this, value);
} else if (Events.ON_CHANGE.equals(event.getName())) {
bandbox.removeAttribute(LAST_ONCHANGING_ATTR);
} else if (Events.ON_CTRL_KEY.equals(event.getName())) {
//handle keyboard navigation for bandbox items
// Handle keyboard navigation for bandbox items
KeyEvent ke = (KeyEvent) event;
if (ke.getKeyCode() == KeyEvent.UP) {
if (bandbox.getFirstChild().isVisible()) {
@ -180,10 +187,12 @@ public class GlobalSearch extends Div implements EventListener<Event> {
}
} else if (event.getName().equals(ON_SEARCH_EVENT)) {
String value = (String) event.getData();
if (tabbox.getSelectedIndex()==0)
if (tabbox.getSelectedIndex()==0) {
menuController.setHighlightText(value);
menuController.search(value);
else
} else {
docController.search(value);
}
bandbox.focus();
} else if (event.getName().equals(ON_CREATE_ECHO_EVENT)) {
//setup client side listener for enter key
@ -247,4 +256,20 @@ public class GlobalSearch extends Div implements EventListener<Event> {
public void onClientInfo() {
ZKUpdateUtil.setWindowHeightX(bandbox.getDropdown(), ClientInfo.get().desktopHeight-50);
}
/**
* Set place holder text for global search input box
* @param placeHolder
*/
public void setPlaceHolderText(String placeHolder) {
bandbox.setPlaceholder(placeHolder);
}
/**
* Set tooltip text for global search input box
* @param tooltipText
*/
public void setTooltipText(String tooltipText) {
bandbox.setTooltiptext(tooltipText);
}
}

View File

@ -17,6 +17,8 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.component.ListHead;
import org.adempiere.webui.component.ListItem;
import org.adempiere.webui.component.Listbox;
@ -95,6 +97,8 @@ public class MenuSearchController implements EventListener<Event>{
private ListModelList<MenuItem> fullModel;
/** true when controller is handling event from Star/Favourite button **/
private boolean inStarEvent;
private String highlightText = null;
/** Event post from {@link #selectTreeitem(Object, Boolean)} **/
private static final String ON_POST_SELECT_TREEITEM_EVENT = "onPostSelectTreeitem";
@ -604,6 +608,14 @@ public class MenuSearchController implements EventListener<Event>{
return false;
}
/**
* Set text to highlight
* @param s
*/
public void setHighlightText(String s) {
highlightText = s;
}
/**
* {@link ListitemRenderer} for {@link #listbox}
*/
@ -634,6 +646,33 @@ public class MenuSearchController implements EventListener<Event>{
cell.setImage(null);
cell.setIconSclass(data.getImage());
}
// Highlight search text
if (!Util.isEmpty(highlightText, true) && data.getLabel().toLowerCase().contains(highlightText.toLowerCase())) {
// Space to maintain proper gap between icon and label
cell.setLabel(" ");
String label = data.getLabel();
String matchString = highlightText.toLowerCase();
int match = label.toLowerCase().indexOf(matchString);
while (match >= 0) {
if (match > 0) {
cell.appendChild(new Label(label.substring(0, match)));
Label l = new Label(label.substring(match, match+matchString.length()));
LayoutUtils.addSclass("highlight", l);
cell.appendChild(l);
label = label.substring(match+matchString.length());
} else {
Label l = new Label(label.substring(0, matchString.length()));
LayoutUtils.addSclass("highlight", l);
cell.appendChild(l);
label = label.substring(matchString.length());
}
match = label.toLowerCase().indexOf(matchString);
}
if (label.length() > 0)
cell.appendChild(new Label(label));
}
item.appendChild(cell);
cell.setTooltip(data.getDescription());
item.setValue(data);

View File

@ -41,7 +41,6 @@ import org.adempiere.webui.component.Checkbox;
import org.adempiere.webui.component.Column;
import org.adempiere.webui.component.Columns;
import org.adempiere.webui.component.ConfirmPanel;
import org.adempiere.webui.component.Datebox;
import org.adempiere.webui.component.DatetimeBox;
import org.adempiere.webui.component.Grid;
import org.adempiere.webui.component.GridFactory;
@ -57,6 +56,7 @@ import org.adempiere.webui.component.Tabpanels;
import org.adempiere.webui.component.Tabs;
import org.adempiere.webui.component.Textbox;
import org.adempiere.webui.component.ToolBarButton;
import org.adempiere.webui.editor.WDateEditor;
import org.adempiere.webui.editor.WSearchEditor;
import org.adempiere.webui.panel.ADForm;
import org.adempiere.webui.panel.CustomForm;
@ -64,6 +64,7 @@ import org.adempiere.webui.panel.IFormController;
import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.theme.ThemeManager;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.adempiere.webui.window.DateRangeButton;
import org.adempiere.webui.window.Dialog;
import org.adempiere.webui.window.WEMailDialog;
import org.compiere.apps.form.Archive;
@ -178,9 +179,9 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
private Listbox createdByQField = new Listbox();
private Label createdQLabel = new Label(Msg.translate(Env.getCtx(), "Created"));
/** Created date from field of query tab */
private Datebox createdQFrom = new Datebox();
private WDateEditor createdQFrom = new WDateEditor();
/** Created date to field of query tab */
private Datebox createdQTo = new Datebox();
private WDateEditor createdQTo = new WDateEditor();
//Viewer Tab
/** Prior button of viewer tab */
@ -457,8 +458,10 @@ public class WArchiveViewer extends Archive implements IFormController, EventLis
rows.appendChild(row);
row.appendChild(createdQLabel);
Hbox hbox = new Hbox();
hbox.appendChild(createdQFrom);
hbox.appendChild(createdQTo);
hbox.appendChild(createdQFrom.getComponent());
hbox.appendChild(createdQTo.getComponent());
DateRangeButton drb = (new DateRangeButton(createdQFrom, createdQTo));
hbox.appendChild(drb);
row.appendChild(hbox);
row.appendChild(new Space());

View File

@ -67,6 +67,7 @@ import org.adempiere.webui.panel.IFormController;
import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.theme.ThemeManager;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.adempiere.webui.window.DateRangeButton;
import org.compiere.apps.form.FactReconcile;
import org.compiere.model.MClient;
import org.compiere.model.MColumn;
@ -86,6 +87,7 @@ import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Borderlayout;
import org.zkoss.zul.Center;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.North;
import org.zkoss.zul.South;
@ -261,11 +263,14 @@ implements IFormController, EventListener<Event>, WTableModelListener, ValueChan
row.appendCellChild(fieldProduct.getComponent(), 2);
row = rows.newRow();
row.appendCellChild(labelDateAcct.rightAlign());
ZKUpdateUtil.setHflex(fieldDateAcct.getComponent(), "true");
row.appendCellChild(fieldDateAcct.getComponent(), 2);
row.appendCellChild(labelDateAcct2.rightAlign());
ZKUpdateUtil.setHflex(fieldDateAcct2.getComponent(), "true");
row.appendCellChild(fieldDateAcct2.getComponent(), 2);
Hbox boxTo = new Hbox();
boxTo.appendChild(fieldDateAcct2.getComponent());
DateRangeButton drb = (new DateRangeButton(fieldDateAcct, fieldDateAcct2));
boxTo.appendChild(drb);
row.appendCellChild(boxTo, 2);
row = rows.newRow();
row.appendChild(bRefresh);
if (ClientInfo.maxWidth(ClientInfo.EXTRA_SMALL_WIDTH-1))

View File

@ -52,6 +52,7 @@ import org.adempiere.webui.panel.IFormController;
import org.adempiere.webui.panel.StatusBarPanel;
import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.adempiere.webui.window.DateRangeButton;
import org.compiere.apps.form.Match;
import org.compiere.minigrid.ColumnInfo;
import org.compiere.minigrid.IDColumn;
@ -65,9 +66,10 @@ import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Borderlayout;
import org.zkoss.zul.Center;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.North;
import org.zkoss.zul.South;
import org.zkoss.zul.Separator;
import org.zkoss.zul.South;
import org.zkoss.zul.Space;
import org.zkoss.zul.Vlayout;
@ -342,7 +344,11 @@ public class WMatch extends Match
row.appendChild(dateFromLabel.rightAlign());
row.appendChild(dateFrom.getComponent());
row.appendChild(dateToLabel.rightAlign());
row.appendChild(dateTo.getComponent());
Hbox boxTo = new Hbox();
boxTo.appendChild(dateTo.getComponent());
DateRangeButton drb = (new DateRangeButton(dateFrom, dateTo));
boxTo.appendChild(drb);
row.appendChild(boxTo);
bSearch.setStyle("float: right");
int r = row.getChildren().size() % noOfColumn;
row.appendCellChild(bSearch, noOfColumn-r);

View File

@ -43,6 +43,7 @@ import org.adempiere.webui.panel.IFormController;
import org.adempiere.webui.panel.StatusBarPanel;
import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.util.ZKUpdateUtil;
import org.adempiere.webui.window.DateRangeButton;
import org.compiere.apps.form.TrxMaterial;
import org.compiere.model.MLocatorLookup;
import org.compiere.model.MLookup;
@ -54,6 +55,7 @@ import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Borderlayout;
import org.zkoss.zul.Center;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.North;
import org.zkoss.zul.South;
@ -225,7 +227,11 @@ public class WTrxMaterial extends TrxMaterial
row = rows.newRow();
}
row.appendCellChild(dateTLabel.rightAlign());
row.appendCellChild(dateTField.getComponent());
Hbox boxTo = new Hbox();
boxTo.appendChild(dateTField.getComponent());
DateRangeButton drb = (new DateRangeButton(dateFField, dateTField));
boxTo.appendChild(drb);
row.appendCellChild(boxTo);
}
/**

View File

@ -740,7 +740,7 @@ public class DashboardController implements EventListener<Event> {
HtmlBasedComponent parentComponent, List<Component> components, Component zulComponent, ServerPushTemplate spt) throws Exception {
// HTML content
String htmlContent = dashboardContent.get_ID() > 0 ? dashboardContent.get_Translation(MDashboardContent.COLUMNNAME_HTML) : null;
if(htmlContent != null)
if(!Util.isEmpty(htmlContent))
{
StringBuilder result = new StringBuilder("<html><head>");

View File

@ -189,13 +189,13 @@ public class WLocationEditor extends WEditor implements EventListener<Event>, Pr
@Override
public void onEvent(Event event) throws Exception {
getComponent().getTextbox().focus();
m_value = ld.getValue();
getComponent().getTextbox().focus();
//
if (!ld.isChanged())
return;
// Data Binding
m_value = ld.getValue();
int C_Location_ID = 0;
if (m_value != null)
C_Location_ID = m_value.getC_Location_ID();
@ -206,7 +206,7 @@ public class WLocationEditor extends WEditor implements EventListener<Event>, Pr
ValueChangeEvent vc = new ValueChangeEvent(WLocationEditor.this,getColumnName(),null,ii);
fireValueChange(vc);
}
setValue(ii);
getComponent().setText(m_value != null ? m_value.toString() : null);
}
});
ld.addEventListener(Events.ON_OPEN, new EventListener<OpenEvent>() {

View File

@ -221,8 +221,10 @@ public class WStringEditor extends WEditor implements ContextMenuListener
// Validate VFormat with regular expression
if (!Util.isEmpty(vFormat) && vFormat.startsWith("~")) {
String regex = gridField.getVFormat().substring(1); // remove the initial ~
if (!newValue.matches(regex))
throw new WrongValueException(component, Msg.getMsg(Env.getCtx(), "InvalidFormatRegExp", new Object[] {regex}));
if (!newValue.matches(regex)) {
String msgregex = Msg.getMsg(Env.getCtx(), regex);
throw new WrongValueException(component, Msg.getMsg(Env.getCtx(), "InvalidFormatRegExp", new Object[] {msgregex}));
}
}
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);

View File

@ -95,7 +95,7 @@ public class HeaderPanel extends Panel implements EventListener<Event>
btnMenu = (LabelImageElement) getFellow("menuButton");
btnMenu.setIconSclass("z-icon-sitemap");
btnMenu.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(),"Menu")));
btnMenu.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(),"Menu")) + " Alt+M");
btnMenu.addEventListener(Events.ON_CLICK, this);
if (ClientInfo.isMobile()) {
LayoutUtils.addSclass("mobile", this);
@ -131,6 +131,8 @@ public class HeaderPanel extends Panel implements EventListener<Event>
stub.getParent().insertBefore(globalSearch, stub);
stub.detach();
globalSearch.setId("menuLookup");
globalSearch.setPlaceHolderText("Alt+G");
globalSearch.setTooltipText("Alt+G");
}
@Override
@ -154,16 +156,19 @@ public class HeaderPanel extends Panel implements EventListener<Event>
} else if (Events.ON_CREATE.equals(event.getName())) {
onCreate();
}else if (event instanceof KeyEvent)
{
//alt+m for the menu
{
KeyEvent ke = (KeyEvent) event;
if (ke.getKeyCode() == 77)
if (ke.getKeyCode() == 77) // alt+m for the menu
{
popMenu.open(btnMenu, "after_start");
popMenu.setFocus(true);
}else if (ke.getKeyCode() == 27) {
}
else if (ke.getKeyCode() == 27) // esc to close menu
{
popMenu.close();
}else if (ke.getKeyCode() == 71) {
}
else if (ke.getKeyCode() == 71) // alt+g for the search
{
globalSearch.setFocus(true);
}
} else if(event.getName().equals(ZoomEvent.EVENT_NAME)) {

View File

@ -65,14 +65,14 @@ public class HTMLExtension implements IHTMLExtension {
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;
if (! theme.endsWith("/"))
theme = theme + "/";
this.classPrefix = classPrefix;
this.componentId = componentId;
if (theme.startsWith("~./")) {
if (theme.startsWith(ThemeManager.ZK_URL_PREFIX_FOR_CLASSPATH_RESOURCE)) {
if (Executions.getCurrent() != null) {
this.styleURL = Executions.encodeURL(theme + "css/report.css");
}
@ -197,12 +197,16 @@ public class HTMLExtension implements IHTMLExtension {
@Override
public String getFullPathStyle() {
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;
if (! theme.endsWith("/"))
if (!theme.endsWith("/"))
theme = theme + "/";
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);
if (urlFile == null) {
resFile = "/css/report.css"; // default

View File

@ -152,6 +152,19 @@
}
}
.global-search-tabpanel .window-name.z-label {
padding: 3px;
font-weight: bold;
display: inline-block;
}
.global-search-tabpanel .search-result.z-a {
padding-left: 3px;
display: inline-block;
}
.global-search-tabpanel .highlight {
background-color: #FFFF00;
}
.menu-href [class^="z-icon-"] {
font-size: larger;
color: #333;

View File

@ -1,10 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/org-netbeans-api-visual.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org-openide-util.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org-openide-util-lookup.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -553,6 +553,7 @@ public class TablePartitionService implements ITablePartitionService {
String s = rs.getString(partitionKeyColumn.getColumnName());
name.append(s);
if (DisplayType.isText(partitionKeyColumn.getAD_Reference_ID()) || partitionKeyColumn.getAD_Reference_ID() == DisplayType.YesNo
|| DisplayType.isList(partitionKeyColumn.getAD_Reference_ID())
|| "EntityType".equals(partitionKeyColumn.getColumnName())
|| "AD_Language".equals(partitionKeyColumn.getColumnName()))
expression.append(DB.TO_STRING(s));

View File

@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -235,8 +235,17 @@ public class TablePartitionService implements ITablePartitionService {
//unique index must include partition key column
String indexdef = uniqueMap.get(indexName);
for(String partitionKey : partitionKeyColumnNames) {
if (!indexdef.contains(partitionKey.toLowerCase()+",") && !indexdef.contains(partitionKey.toLowerCase()+")"))
indexdef = indexdef.substring(0, indexdef.length()-1)+", "+partitionKey.toLowerCase()+")";
if (!indexdef.contains(partitionKey.toLowerCase()+",") && !indexdef.contains(partitionKey.toLowerCase()+")")) {
int whereIndex = indexdef.toLowerCase().indexOf(" where ");
if (whereIndex > 0) {
String whereClause = indexdef.substring(whereIndex);
indexdef = indexdef.substring(0, whereIndex);
indexdef = indexdef.substring(0, indexdef.length()-1)+", "+partitionKey.toLowerCase()+")";
indexdef = indexdef + whereClause;
} else {
indexdef = indexdef.substring(0, indexdef.length()-1)+", "+partitionKey.toLowerCase()+")";
}
}
}
StringBuilder alter = new StringBuilder("DROP INDEX ").append(indexName);
DB.executeUpdateEx(alter.toString(), trxName);
@ -890,6 +899,7 @@ public class TablePartitionService implements ITablePartitionService {
updateStmt.append(partitionKeyColumn.getColumnName()).append("=");
if (DisplayType.isText(partitionKeyColumn.getAD_Reference_ID()) || partitionKeyColumn.getAD_Reference_ID() == DisplayType.YesNo
|| DisplayType.isList(partitionKeyColumn.getAD_Reference_ID())
|| "EntityType".equals(partitionKeyColumn.getColumnName())
|| "AD_Language".equals(partitionKeyColumn.getColumnName()))
updateStmt.append("'").append(listValue).append("' ");

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,8 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/hazelcast.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,6 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,17 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/keikai-oss.jar"/>
<classpathentry exported="true" kind="lib" path="lib/keikai-model-oss.jar"/>
<classpathentry exported="true" kind="lib" path="lib/zpoi.jar"/>
<classpathentry exported="true" kind="lib" path="lib/ooxml-schemas.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,14 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/">
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>

View File

@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,7 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -1,8 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="lib/breeze.jar"/>
<classpathentry exported="true" kind="lib" path="lib/calendar.jar" sourcepath="lib/calendar-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/closure-compiler.jar"/>
@ -10,5 +19,10 @@
<classpathentry exported="true" kind="lib" path="lib/timelinez.jar"/>
<classpathentry exported="true" kind="lib" path="lib/timeplotz.jar"/>
<classpathentry exported="true" kind="lib" path="lib/iceblue_c.jar"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>