From 33b8b505d7dcaa366ed5a1bf47f3efb684ffaf2f Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Dec 2018 20:00:20 +0100 Subject: [PATCH 1/5] IDEMPIERE-3852 Export zip button (pack out) has error for tabs beyond third level (FHCA-815) --- .../handler/GenericPOElementHandler.java | 41 +++++++++++++------ .../adempiere/pipo2/GridTab2PackExporter.java | 6 ++- .../webui/panel/action/ExportAction.java | 21 ++++++++++ 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java index e1a6913c85..c4b9e40f86 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java @@ -20,6 +20,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -195,7 +196,7 @@ public class GenericPOElementHandler extends AbstractElementHandler { for (int i = 1; i < components.length; i++) { String tables[] = components[i].split("[>]"); - exportDetail(ctx, document, po, 0, tables); + exportDetail(ctx, document, po, tables); } if (createElement) { @@ -209,19 +210,19 @@ public class GenericPOElementHandler extends AbstractElementHandler { } } - private void exportDetail(PIPOContext ctx, TransformerHandler document, GenericPO parent, int index, String[] tables) { + private void exportDetail(PIPOContext ctx, TransformerHandler document, GenericPO parent, String[] tables) { + String mainTable = tables[0]; AttributesImpl atts = new AttributesImpl(); - tables[index] = tables[index].trim(); - String sql = "SELECT * FROM " + tables[index] + " WHERE " + parent.get_TableName() + "_ID = ?"; + String sql = "SELECT * FROM " + mainTable + " WHERE " + parent.get_TableName() + "_ID = ?"; PreparedStatement pstmt = null; ResultSet rs = null; try { - sql = MRole.getDefault().addAccessSQL(sql, tables[index], true, true); + sql = MRole.getDefault().addAccessSQL(sql, mainTable, true, true); pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, parent.get_ID()); rs = pstmt.executeQuery(); while (rs.next()) { - GenericPO po = new GenericPO(tables[index], ctx.ctx, rs, getTrxName(ctx)); + GenericPO po = new GenericPO(mainTable, ctx.ctx, rs, getTrxName(ctx)); int AD_Client_ID = po.getAD_Client_ID(); if (AD_Client_ID != Env.getAD_Client_ID(ctx.ctx)) continue; @@ -237,12 +238,12 @@ public class GenericPOElementHandler extends AbstractElementHandler { } if (createElement) { verifyPackOutRequirement(po); - List excludes = defaultExcludeList(tables[index]); + List excludes = defaultExcludeList(mainTable); addTypeName(atts, "table"); - document.startElement("", "", tables[index], atts); + document.startElement("", "", mainTable, atts); PoExporter filler = new PoExporter(ctx, document, po); filler.export(excludes, true); - ctx.packOut.getCtx().ctx.put("Table_Name",tables[index]); + ctx.packOut.getCtx().ctx.put("Table_Name",mainTable); try { new CommonTranslationHandler().packOut(ctx.packOut,document,null,po.get_ID()); } catch(Exception e) { @@ -250,11 +251,27 @@ public class GenericPOElementHandler extends AbstractElementHandler { } } } - for (int i=index+1; i detTablesArr = new ArrayList(); + for (int j=i; j gridTab.getTabLevel()+1) { - sql = sql.append(">").append(child.getTableName()); + int level = child.getTabLevel() - gridTab.getTabLevel() - 1; + String sep = ">"; + for (int i = 1; i < level; i++) + sep += "+"; + sql = sql.append(sep).append(child.getTableName()); } else { sql = sql.append(";").append(child.getTableName()); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java index 0435823bfc..c6946c4588 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java @@ -216,6 +216,7 @@ public class ExportAction implements EventListener chkSelectionTab.setAttribute("tabBinding", child); vlayout.appendChild(chkSelectionTab); chkSelectionTabForExport.add(chkSelectionTab); + chkSelectionTab.addEventListener(Events.ON_CHECK, this); isHasSelectionTab = true; } @@ -235,6 +236,26 @@ public class ExportAction implements EventListener panel.hideBusyMask(); }else if (event.getTarget().equals(cboType) && event.getName().equals(Events.ON_SELECT)) { displayExportTabSelection(); + }else if (event.getTarget() instanceof Checkbox) { + // A child is not exportable without its parent + Checkbox cbSel = (Checkbox) event.getTarget(); + GridTab gtSel = (GridTab)cbSel.getAttribute("tabBinding"); + boolean found = false; + for (Checkbox cb : chkSelectionTabForExport) { + if (cb == cbSel) { + found = true; + continue; + } + GridTab gt = (GridTab)cb.getAttribute("tabBinding"); + if (found) { + if (gt.getTabLevel() > gtSel.getTabLevel()) { + cb.setChecked(cbSel.isChecked()); + cb.setEnabled(cbSel.isChecked()); + } else { + break; + } + } + } }else if (event.getName().equals("onExporterException")){ FDialog.error(0, winExportFile, "FileInvalidExtension"); winExportFile.onClose(); From 021eb6d27f7fec6dee1e665ea44480bdff7e0bda Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 10 Dec 2018 21:30:18 +0800 Subject: [PATCH 2/5] IDEMPIERE-3697 IDEMPIERE-3598 AP2-821 Invoice reversals not updating PO record as expected. Fix condition for auto create of matchpo in matchpo.reverse --- org.adempiere.base/src/org/compiere/model/MMatchPO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/model/MMatchPO.java b/org.adempiere.base/src/org/compiere/model/MMatchPO.java index e6b2c17b8b..52ea5233db 100644 --- a/org.adempiere.base/src/org/compiere/model/MMatchPO.java +++ b/org.adempiere.base/src/org/compiere/model/MMatchPO.java @@ -1289,7 +1289,7 @@ public class MMatchPO extends X_M_MatchPO this.saveEx(); // auto create new matchpo if have invoice line - if ( reversal.getC_InvoiceLine_ID() > 0) + if ( reversal.getC_InvoiceLine_ID() > 0 && reversal.getM_InOutLine_ID() > 0 ) { MMatchPO[] matchPOs = MMatchPO.getOrderLine(reversal.getCtx(), reversal.getC_OrderLine_ID(), reversal.get_TrxName()); BigDecimal matchQty = getQty(); From fbb5f7438948fcab16f8cd35e3480427e256a06a Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 20 Dec 2018 14:21:19 +0100 Subject: [PATCH 3/5] IDEMPIERE-2003 Capturing wrong numbers with numeric keypad when decimal separator is not dot / fix problem reported with double comma in windows and certain keyboards --- .../src/org/adempiere/webui/component/NumberBox.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java index 5a2a377261..586f0dca60 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java @@ -92,32 +92,30 @@ public class NumberBox extends Div char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, Env.getLanguage(Env.getCtx())).getDecimalFormatSymbols().getDecimalSeparator(); String separator = Character.toString(separatorChar); boolean processDotKeypad = MSysConfig.getBooleanValue(MSysConfig.ZK_DECIMALBOX_PROCESS_DOTKEYPAD, true, Env.getAD_Client_ID(Env.getCtx())); - if (".".equals(separator)) - processDotKeypad = false; if (processDotKeypad) { StringBuffer funct = new StringBuffer(); funct.append("function(evt)"); funct.append("{"); - // ignore dot and process it on key up - funct.append(" if (!this._shallIgnore(evt, '0123456789-%").append(separator).append("'))"); + // ignore dot, comma and decimal separator and process them on key down + funct.append(" if (!this._shallIgnore(evt, '0123456789-%'))"); funct.append(" {"); funct.append(" this.$doKeyPress_(evt);"); funct.append(" }"); funct.append("}"); decimalBox.setWidgetOverride("doKeyPress_", funct.toString()); funct = new StringBuffer(); - // not working correctly on opera + // debug // funct.append("console.log('keyCode='+event.keyCode);"); funct.append("if (window.event)"); funct.append(" key = event.keyCode;"); funct.append("else"); funct.append(" key = event.which;"); - funct.append("if ((key == 110 || key == 190) && !window.opera) {"); + funct.append("if (key == 108 || key == 110 || key == 188 || key == 190 || key == 194) {"); funct.append(" var id = '$'.concat('").append(decimalBox.getId()).append("');"); funct.append(" var calcText = jq(id)[0];"); funct.append(" calcText.value += '").append(separator).append("';"); funct.append(" event.stop;"); funct.append("};"); - decimalBox.setWidgetListener("onKeyUp", funct.toString()); + decimalBox.setWidgetListener("onKeyDown", funct.toString()); } appendChild(decimalBox); From abdf2d50d5d1b386d478a62c01f69b4ce65d61fd Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 20 Dec 2018 15:53:16 +0100 Subject: [PATCH 4/5] IDEMPIERE-2003 Capturing wrong numbers with numeric keypad when decimal separator is not dot / similar problem in calculator --- .../adempiere/webui/component/NumberBox.java | 22 +++++++--------- org.adempiere.ui.zk/js/calc.js | 26 ++++--------------- 2 files changed, 15 insertions(+), 33 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java index 586f0dca60..27701017fb 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java @@ -249,29 +249,27 @@ public class NumberBox extends Div txtCalc.setId(txtCalc.getUuid()); boolean processDotKeypad = MSysConfig.getBooleanValue(MSysConfig.ZK_DECIMALBOX_PROCESS_DOTKEYPAD, true, Env.getAD_Client_ID(Env.getCtx())); - if (".".equals(separator)) - processDotKeypad = false; - - // restrict allowed characters - String decimalSep = separator; - if (!processDotKeypad && !".".equals(separator)) - decimalSep += "."; StringBuffer funct = new StringBuffer(); funct.append("function(evt)"); funct.append("{"); - funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789").append(decimalSep).append("'))"); + if (processDotKeypad) { + funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789'))"); + } else { + // restrict allowed characters + String decimalSep = separator; + if (!processDotKeypad && !".".equals(separator)) + decimalSep += "."; + funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789").append(decimalSep).append("'))"); + } funct.append(" {"); funct.append(" this.$doKeyPress_(evt);"); funct.append(" }"); funct.append("}"); txtCalc.setWidgetOverride("doKeyPress_", funct.toString()); - txtCalc.setWidgetListener("onKeyUp", "calc.validateUp('" + + txtCalc.setWidgetListener("onKeyDown", "calc.validateDown('" + decimalBox.getId() + "','" + txtCalc.getId() + "'," + integral + "," + (int)separatorChar + ", event, " + ( processDotKeypad ? "true" : "false" ) + ");"); - txtCalc.setWidgetListener("onKeyPress", "calc.validatePress('" + - decimalBox.getId() + "','" + txtCalc.getId() - + "'," + integral + "," + (int)separatorChar + ", event);"); txtCalc.setMaxlength(250); txtCalc.setCols(30); diff --git a/org.adempiere.ui.zk/js/calc.js b/org.adempiere.ui.zk/js/calc.js index 40e0904160..2a502fa327 100644 --- a/org.adempiere.ui.zk/js/calc.js +++ b/org.adempiere.ui.zk/js/calc.js @@ -1,41 +1,25 @@ function Calc() { - this.validateUp = validateUp; - this.validatePress = validatePress; + this.validateDown = validateDown; this.clear = clear; this.clearAll = clearAll; this.evaluate = evaluate; this.append = append; - function validatePress(displayTextId, calcTextId, integral, separatorKey, e) - { - var key; - - if(window.event) - key = e.keyCode; //IE - else - key = e.which; //Firefox - // console.log("validatePress: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key); - if (key == 61) // = - { - evaluate(displayTextId, calcTextId, String.fromCharCode(separatorKey)); - } - } - - function validateUp(displayTextId, calcTextId, integral, separatorKey, e, processDotKeypad) + function validateDown(displayTextId, calcTextId, integral, separatorKey, e, processDotKeypad) { var key; if(window.event) key = e.keyCode; //IE else key = e.which; //Firefox - // console.log("validateUp: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key + " / " + processDotKeypad); - if (key == 13) // Enter + // console.log("validateDown: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key + " / " + processDotKeypad); + if (key == 13 || key == 61) // Enter { evaluate(displayTextId, calcTextId, String.fromCharCode(separatorKey)); } - else if (processDotKeypad && separatorKey != 46 && (key == 110 || key == 190) && !window.opera) // numeric dot on keypad (not working for opera) + else if (processDotKeypad && (key == 108 || key == 110 || key == 188 || key == 190 || key == 194)) { append(calcTextId, String.fromCharCode(separatorKey)); e.stop; From e00b022e12ba3ac5120df00c9ad24e8749b9c2aa Mon Sep 17 00:00:00 2001 From: hieplq Date: Fri, 21 Dec 2018 19:08:06 +0700 Subject: [PATCH 5/5] IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (move file server to github) --- org.adempiere.payment.processor/pom.xml | 6 +- org.adempiere.report.jasper.library/pom.xml | 2 +- org.adempiere.server-feature/pom.xml | 6 +- org.adempiere.ui.swing/pom.xml | 2 +- org.adempiere.ui.zk/pom.xml | 2 +- org.compiere.db.oracle.provider/pom.xml | 2 +- org.idempiere.fitnesse.server/pom.xml | 4 +- .../org.idempiere.p2.targetplatform.target | 178 +++++++++--------- org.idempiere.parent/pom.xml | 2 +- org.idempiere.webservices/pom.xml | 2 +- 10 files changed, 103 insertions(+), 103 deletions(-) diff --git a/org.adempiere.payment.processor/pom.xml b/org.adempiere.payment.processor/pom.xml index 4922742ad8..2501a0acde 100644 --- a/org.adempiere.payment.processor/pom.xml +++ b/org.adempiere.payment.processor/pom.xml @@ -22,7 +22,7 @@ wget - ${url.file.srv}/jarfile/6.1/jpayment.jar + ${url.file.srv}/extra.jar/jpayment.jar false lib 5 @@ -35,7 +35,7 @@ wget - ${url.file.srv}/jarfile/6.1/Verisign.jar + ${url.file.srv}/extra.jar/Verisign.jar false lib 5 @@ -48,7 +48,7 @@ wget - ${url.file.srv}/jarfile/6.1/payflow.jar + ${url.file.srv}/extra.jar/payflow.jar false lib 5 diff --git a/org.adempiere.report.jasper.library/pom.xml b/org.adempiere.report.jasper.library/pom.xml index c37b210c63..ba1d29df53 100644 --- a/org.adempiere.report.jasper.library/pom.xml +++ b/org.adempiere.report.jasper.library/pom.xml @@ -78,7 +78,7 @@ wget - ${url.file.srv}/jarfile/jp-${jp.version}/jasperreports-fonts-${jp.version}.jar + ${url.file.srv}/extra.jar/jasperreports-fonts-${jp.version}.jar false lib jasperreports-fonts.jar diff --git a/org.adempiere.server-feature/pom.xml b/org.adempiere.server-feature/pom.xml index 312b721fdb..c116c4aa66 100644 --- a/org.adempiere.server-feature/pom.xml +++ b/org.adempiere.server-feature/pom.xml @@ -184,7 +184,7 @@ wget - ${url.file.srv}/jarfile/6.1/101-20121212164242.zip + ${url.file.srv}/extra.jar/101-20121212164242.zip false ../fitnesse/FitNesseRoot/FitLibraryWeb 5 @@ -197,7 +197,7 @@ wget - ${url.file.srv}/jarfile/6.1/21-20121212154702.zip + ${url.file.srv}/extra.jar/21-20121212154702.zip false ../fitnesse/FitNesseRoot/FitLibraryWeb 5 @@ -210,7 +210,7 @@ wget - ${url.file.srv}/jarfile/6.1/6-20121212124109.zip + ${url.file.srv}/extra.jar/6-20121212124109.zip false ../fitnesse/FitNesseRoot/FitLibraryWeb 5 diff --git a/org.adempiere.ui.swing/pom.xml b/org.adempiere.ui.swing/pom.xml index 179214d205..55c30a1bb5 100644 --- a/org.adempiere.ui.swing/pom.xml +++ b/org.adempiere.ui.swing/pom.xml @@ -69,7 +69,7 @@ wget - ${url.file.srv}/jarfile/6.1/jpedal.jar + ${url.file.srv}/extra.jar/jpedal.jar false lib 5 diff --git a/org.adempiere.ui.zk/pom.xml b/org.adempiere.ui.zk/pom.xml index 14bdd8f936..7f8d43b194 100644 --- a/org.adempiere.ui.zk/pom.xml +++ b/org.adempiere.ui.zk/pom.xml @@ -51,7 +51,7 @@ wget - ${url.file.srv}/jarfile/6.1/labelapplet.jar + ${url.file.srv}/extra.jar/labelapplet.jar false ./ 5 diff --git a/org.compiere.db.oracle.provider/pom.xml b/org.compiere.db.oracle.provider/pom.xml index f8a67adca3..9b881e3a9a 100644 --- a/org.compiere.db.oracle.provider/pom.xml +++ b/org.compiere.db.oracle.provider/pom.xml @@ -58,7 +58,7 @@ - ${url.file.srv}/jarfile/6.1/ojdbc7.jar + ${url.file.srv}/extra.jar/ojdbc7.jar false lib 5 diff --git a/org.idempiere.fitnesse.server/pom.xml b/org.idempiere.fitnesse.server/pom.xml index 4eb108a452..3dbc4a9114 100644 --- a/org.idempiere.fitnesse.server/pom.xml +++ b/org.idempiere.fitnesse.server/pom.xml @@ -63,7 +63,7 @@ wget - ${url.file.srv}/jarfile/6.1/fitlibrary-2.0.jar + ${url.file.srv}/extra.jar/fitlibrary-2.0.jar false lib 5 @@ -77,7 +77,7 @@ wget - ${url.file.srv}/jarfile/6.1/fitlibraryweb-2.0.jar + ${url.file.srv}/extra.jar/fitlibraryweb-2.0.jar false lib 5 diff --git a/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target b/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target index b7e6cd38bd..25e55c4ce3 100644 --- a/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target +++ b/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target @@ -764,6 +764,14 @@ + + + + + + + + @@ -792,82 +800,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -924,6 +862,8 @@ + + @@ -940,6 +880,10 @@ + + + + @@ -950,10 +894,32 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -1012,8 +978,30 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -1027,6 +1015,7 @@ + @@ -1045,36 +1034,47 @@ + + + + + + - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/org.idempiere.parent/pom.xml b/org.idempiere.parent/pom.xml index d59b3a8290..95cb60652c 100644 --- a/org.idempiere.parent/pom.xml +++ b/org.idempiere.parent/pom.xml @@ -30,7 +30,7 @@ eclipse-photon-201809 http://download.eclipse.org/tools/orbit/downloads/drops/R20180905201904/repository orbit-photon-R20180905201904 - http://downloads.sourceforge.net/project/idempiere/binary.file + https://raw.githubusercontent.com/idempiere/binary.file/master org.eclipse.equinox.p2.director, org.idempiere.equinox.p2.director.feature.feature.group, org.idempiere.fitnesse.feature.feature.group org.adempiere.server.product 2.8.5 diff --git a/org.idempiere.webservices/pom.xml b/org.idempiere.webservices/pom.xml index 7a032db849..c84b1cc962 100644 --- a/org.idempiere.webservices/pom.xml +++ b/org.idempiere.webservices/pom.xml @@ -32,7 +32,7 @@ wget - ${url.file.srv}/jarfile/6.1/idempiere-xmlbeans-1.0.jar + ${url.file.srv}/extra.jar/idempiere-xmlbeans-1.0.jar false WEB-INF/lib 5