* IDEMPIERE-4863-1 Enable save column width in WListBox
This PR is the base for implementing save of column width of a wlistbox in forms and windows.
* IDEMPIERE-4863-1 Enable save column width in WListBox implementation example
This commit is showing examples implementation of this PR, it is for infoProductWindow and infoWindow
* IDEMPIERE-4986 Extend events to prefill email dialog variables from report window
* IDEMPIERE-4986 Extend events to prefill email dialog variables from report window / also in new Attachment button
* IDEMPIERE-4986 Extend events to prefill email dialog variables from report window / change approach to constructor
* IDEMPIERE-4992 email from archive dialog
* IDEMPIERE-4721 : Financial Report : exclude all adjustment periods - fix NPE
reported by @CarlosRuiz-globalqss ; see https://idempiere.atlassian.net/browse/IDEMPIERE-4721?focusedCommentId=47539
* IDEMPIERE-4721 : Financial Report : exclude all adjustment periods - fix NPE
Using Carlos's suggestion
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4968 Enable 2Pack to run java class or script (FHCA-3112 FHCA-3113) / Shell script
* IDEMPIERE-4968 Enable 2Pack to run java class or script (FHCA-3112 FHCA-3113) / Java Shell script -> beanshell/groovy
* IDEMPIERE-4968 Enable 2Pack to run java class or script (FHCA-3112 FHCA-3113) / Remove java class option, fixes for script
* IDEMPIERE-4968 Enable 2Pack to run java class or script (FHCA-3112 FHCA-3113) / rename to ScriptJSR223
* IDEMPIERE-4968 Enable 2Pack to run java class or script (FHCA-3112 FHCA-3113) / add audit information to SQL statements, shell and JSR223 scripts
* IDEMPIERE-4842 Easier model registration
- Needs to enable jar scanning to support felix/console installation of
plugin jar.
- add rejectJars call to reduce startup delay after enable of jar
scanning. keep the list short to reduce future maintenance hazard.
- remove the not supported use of acceptPackagesNonRecursive and
acceptClasses together.
- change getAcceptClassesPatterns() default to X_* and M*. Withouut
acceptPackages, we need to scan both X and M classes.
* IDEMPIERE-4842 Easier model registration
- remove use of rejectJars since the performance difference is small and
need maintenance.
- remove warning for not overriding getPackages(). Plugin that doesn't
has many model class (< 100) doesn't have to override getPackages() as
performance is good enough with the use of acceptClasses(...).
* IDEMPIERE-4842 Easier model registration
- Change from https://github.com/atteo/classindex to
https://github.com/classgraph/classgraph, remove annotation processor
config.
- Change service.ranking of DefaultModelFactory to -1 and
service.ranking of AnnotationBasedModelFactory to 0. This give
AnnotationBasedModelFactory higher priority over DefaultModelFactory and
allow plugins to have higher priority over AnnotationBasedModelFactory
with server.ranking of 1 (the common practise before the introduction of
AnnotationBasedModelFactory).
- Added resultset constructor to MTree. This is to allow the use of
MTree with model factory.
- Remove classindex annotation from org.adempiere.base.Model and X_*
model classes.
- Added unit test for table to model class mapping
- AnnotationBasedModelFactory: Change from using annotation processor to
runtime annotation scanning using the classgraph library. The default
setting scans all the X_* model class and travels the inheritance
hierarchy to discover the M* model class. Plugin needs to create a
subclass of AnnotationBasedModelFactory and register it as an OSGi
component to scan the plugin's annotated model classes (the plugin's
custom AnnotationBasedModelFactory component should have service.ranking
> 0).
* IDEMPIERE-4842 Easier model registration
minor refinement
* Minor changes
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-4866 : Multiple smtp per tenant
Same PR as https://github.com/idempiere/idempiere/pull/783
* IDEMPIERE-4866 : Multiple smtp per tenant - various fixes
Fixes suggested by Carlos on https://github.com/idempiere/idempiere/pull/783 (remove System.out, change AD_Element name, tab in SingleRow mode) + fix NPE
* IDEMPIERE-4866 : Multiple smtp per tenant : implement cache
* IDEMPIERE-4866 : Multiple smtp per tenant : process EMailTest was not set on column
Fixes by Carlos
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4842 Easier model registration
- Temporary disable AnnotationBasedModelFactory until getSubclasses()
doesn't work for subclass from different package is resolve.
* IDEMPIERE-4842 Easier model registration
- turn of annotation processing in editor which causes slow editor
performance
* Preliminary support for automatic model class registration
Model classes can be tagged with a new @Model annotation that allows for
easy/fast class scanning/registration, based on the ClassIndex library.
The list of annotated model classes is generated at compile time, thus
reducing reflection reliance to a bare minimum.
NOTE: Eclipse uses its own Java compiler which is not strictly standard
compliant and requires extra configuration. In Java Compiler ->
Annotation Processing -> Factory Path you need to add ClassIndex jar
file
* Annotation based model factory
* Improve classloader determination for annotation scanning
ClassIndex default annotation scanning method determines the classloader
to be used by calling Thread.currentThread().getContextClassLoader(),
which should not be used in an OSGi environment.
* Enable ClassIndex's annotation processor under Eclipse
Make sure annotation processing is enabled at Module Properties -> Java
Compiler -> Annotation Processing
* Refactoring annotation-based model class detection
Eliminated the need of annotating M* classes, by using ClassIndex's
@IndexSubclasses annotation.
* Minor change
* Minor changes
* Creation of AbstractModelFactory
* Documentation
* Make AnnotationBasedModelFactory extend AbstractModelFactory
* IDEMPIERE-4842 Easier model registration
- add annotation processor jdt settings
- fix @Component annotation for AnnotationBasedModelFactory
- fix generated x_* class missing "org.atteo.classindex.IndexSubclasses"
import
* Expose ClassIndex lib to other bundles
* Updated model classes
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info
Use customized image from tenant level when opening the panel
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info - fix migration scripts name
* IDEMPIERE-4961 Minor performance enhancement for AD Window
* IDEMPIERE-4961 Minor performance enhancement for AD Window
Fix potential mtab not found issue with 2pack import.
* IDEMPIERE-4960 Performance improvement for the opening of info window
* IDEMPIERE-4960 Performance improvement for the opening of info window
Query.scroll and Query.list basically offer the same db performance, the
previous change is unnecessary.
* IDEMPIERE-4959 Performance improvement for the opening of form window
* IDEMPIERE-4959 Performance improvement for the opening of form window
minor cache name change.
* IDEMPIERE-4958 Performance improvement for the opening of process dialog
* IDEMPIERE-4958 Performance improvement for the opening of process dialog
Query.scroll and Query.list has similar db performance, the previous
change is not needed.
At the end of table sorting, trigger data status change event before UI
event, so that GridTab data is changed before UI refresh, which is
needed for Swing UI.
* IDEMPIERE-4937 Refreshing the GridTab after moving a node in the Tree
* IDEMPIERE-4937 Refreshing the GridTab after moving a node in the Tree
Use Trx object instead of context for event changes indicator.
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Based on pull request 170
Co-authored-by: Igor Pojzl <igor.pojzl@cloudempiere.com>
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Rename migration scripts as suggested by Heng Sin
* IDEMPIERE-2853: Support for IADTabPanel as factory to add custom Tab types
sh: q: command not found
* IDEMPIERE-2853: adding requested Java doc, fixing seq mismatch in oracle and postgresql, Using Interface method instead of manual isSortTab check,
* IDEMPIERE-2853: Adding default implementation for isEnableCustomizeButton in IADTabpanel
* IDEMPIERE-2853: renaming reference label and Added support for allowing implementor to update toolbar state.
* IDEMPIERE-2853: Fixing compilation issue due to merging to master branch
* IDEMPIERE-4724
allow to concatenate parts at import
allow to prefix them which also is necessary to separate them when concatenating
allow to concatenate callouts and provide sort of parameters
* Update CalloutEngine.java
minor - typos in comments
* Update ImpFormatRow.java
is better to raise the exception when the callout cannot be found - the results can be unexpected for end users if the callouts are not called
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4911 Silent fail when translated column is shorter than original column (FHCA-2888)
Changes:
* Saving a value that doesn't fit in the translation now fails with a proper user understandable message
* Synchronize Doc Translation now fails with a user understandable message in case it fails because a value doesn't fit
* When updating a column on a translation table, check for the size of the original column and update the size accordingly
* When updating a translated column, show warnings to user about creating the table, or creating the column, or updating the column size
* IDEMPIERE-4911 Silent fail when translated column is shorter than original column (FHCA-2888)
Improve message for end user
* IDEMPIERE-4899 Report: print product instance attribute name and value as column
* IDEMPIERE-4899 Report: print product instance attribute name and value as column
- use parenthesis for display logic
- fixed display logic evaluation exception
- fixed index out of bound exception for xls and xlsx
* IDEMPIERE-4899 Report: print product instance attribute name and value as column
- Fix css for columns that have been shifted to the right
* IDEMPIERE-4894 OSGi Interface to support custom header and footer
* IDEMPIERE-4894 OSGi Interface to support custom header and footer
incorporate migration script fix from Carlos
* IDEMPIERE-1994 Ability to organise process and report parameters by Field Group functionality
* IDEMPIERE-1994 Ability to organise process and report parameters by Field Group functionality
Fix collapsed by default not working.
* IDEMPIERE-4858 : CreateTable process
* IDEMPIERE-4858 : CreateTable process - fixes
Changes following Carlos's remarks - see details in the ticket
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4858 : CreateTable process - fixes migration scripts
See details in ticket
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4858 : CreateTable process - various fixes
fix migration scripts names / constants in uppercase / remove check of table length
* IDEMPIERE-4858 : CreateTable process - various fixes
default value for EntityType param / replace numeric name/value params by boolean ones / enhance creation of system element (name/print name/description)
see https://idempiere.atlassian.net/browse/IDEMPIERE-4858?focusedCommentId=47325
* IDEMPIERE-4858 : CreateTable process : optional columns
* IDEMPIERE-4858 : CreateTable process : remove wrong temporary migration scripts
* IDEMPIERE-4858 : CreateTable process :
add org.adempiere.base.process as required plugin (and not as imported package)
add missing content on migration scripts
* IDEMPIERE-4858 : CreateTable process : fixes / reordering / renaming
Failed creating Description column: ** Fill mandatory fields: : Length
Value and DocumentNo are not usually mandatory
Some minor reordering and renaming of variables
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4858 : CreateTable process : can be used to add columns on existing table
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4858 : CreateTable process - fix default value for TableName parameter
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4858 : CreateTable process - restore default value for Description, Name and AccessLevel parameters
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
Fix regression (empty expression evaluation) introduce by previous
patch.
Pushing this through as the previous change set introduce a significant regression.
* IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system)
Split processToken in two public methods to allow calling from external interfaces
* Add suggestion from druiz
* IDEMPIERE-3732 : MRefList.getList cannot allow to choose order by
* @nmicoud IDEMPIERE-3732 : MRefList.getList cannot allow to choose order by - ASP filter
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4828-posting of Allocation with a AR Credit Memos with discount, the tax-correction has the wrong sign
* IDEMPIERE-4828 - posting of Allocation with a AR Credit Memos with discount, the tax-correction has the wrong sign
check for DocBaseType
* IDEMPIERE-4578 generic DocAction
* IDEMPIERE-4578 generic DocAction
* IDEMPIERE-4578 generic DocAction
Refactor generic docaction implementation to a separate delegate class.
This should make it easier for any model class to implement the
DocAction interface using the DocActionDelegate class.
* IDEMPIERE-4578 generic DocAction
add generic type support
* IDEMPIERE-4578 generic DocAction
generic type should implements DocAction
* IDEMPIERE-4578 generic DocAction
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-4853 Process to copy a Packout definition (FHCA-859)
* IDEMPIERE-4853 Process to copy a Packout definition (FHCA-859)
Do not copy inactive details (as suggested by hengsin)
* TableIndexValidate: include only active columns in table index
* simplified MTableIndex.getColumns()
* MTableIndex.createDDL() - restored space positioning
Co-authored-by: Andreas <sumerauer@kanzlei-wmv.de>
* fix for MProduction.createLines/( storage issue
* extended if clause to cover storage lines with the same AsiID
Co-authored-by: Andreas <sumerauer@kanzlei-wmv.de>
* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)
Implement suggestions from Heng Sin
* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)
Fix security warning advised by github/CodeQL
* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)
Implement an incremental delay in zk when the validation code is wrong (to avoid brute-force attacks)
As suggested by Ricardo Santana:
* ensures one-time only use of an OTP
* Log failures in AuthFailure.log
* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)
* Log failures in AuthFailure.log - add case for login with email
* Implement incremental delay also for login panel
* Implement for Window, Process and Info Window Customization:
* Change to non-updateable the columns that have related children
* Change default to NULL in role, user and language
* Disable the autofilling of name, description and help
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler
Fix initial output type selection for csv. Fix handling of binary vs
text media type.
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler
- Change AD_AuthorizationAccount scope from single value to multiple
selection list (AD_AuthorizationScopes replace AD_AuthorizationScope)
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler
Fix isIntersectCSV db function
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler
add back AD_AuthorizationScope Configured dynamic validation filter
* IDEMPIERE-2377: Add "Prepare" Document Action to all document type
* IDEMPIERE-2377: Adding Prepare action on prepared docs and removeing redundent actions
Co-authored-by: carg67@gmail.com
* IDEMPIERE-4749 Allow to use OAuth2 libraries on plugins
- move oauth libraries and dependency to target platform
- require Tycho 2.3.0+ and Eclipse 2021-03+
* IDEMPIERE-4749 Allow to use OAuth2 libraries on plugins
Fix launch configuration.
* IDEMPIERE-4768 Cannot ship in some cases when multiple ASI with different material policy
* IDEMPIERE-4768 Cannot ship in some cases when multiple ASI with different material policy
* Fix wrong selection of material date policy, must take into account isUseGuaranteeDateForMPolicy
* Fix wrong material receipt, assigning material date policy based on inventory instead of document/ASI
* * Unit tests
* IDEMPIERE-4763 Add IsDefault to AD_StorageProvider and use it when creating a new tenant (FHCA-1165)
* Add column/field AD_StorageProvider.IsDefault
* Includes a minor refactoring of Login.loadDefault to add the ID column to the order by, to make predictable the ID returned when there are more than one record marked as default
* Context variable #AD_StorageProvider_ID is not created
* * Model class modified
* IDEMPIERE-4764 Hazelcast distributed cache can be an issue in some environments
- Change setting for all caches to be non-distributed
* IDEMPIERE-4764 Hazelcast distributed cache can be an issue in some environments
* TC-324 Fix cache related monitoring and performance issues
- PO & GridTable call to CacheMgt reset should be async.
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-4727 Movement Window: a new line can be created for a movement that is completed.
* IDEMPIERE-4727 Movement Window: a new line can be created for a movement that is completed.
Fix the problem also in model, to cover case when trying to add/modify lines for example via webservices
* IDEMPIERE-4727 Movement Window: a new line can be created for a movement that is completed.
Fix the problem also in model, change approach to use isProcessed instead of isComplete
* IDEMPIERE-4746 Wrong usage of MTable.getColumnIndex
* Implementing suggestion from Andreas Sumerauer
* Fix issue in IDEMPIERE-3916 (Move Client) and IDEMPIERE-1026 (Create Window from Table)
* IDEMPIERE-4746 Wrong usage of MTable.getColumnIndex
* Change approach to discover real columns
* * Rename method as suggested by Andreas Sumerauer
* IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system)
WIP - initial version working on zk with google apps mail using OAuth2 Authorization Code Flow and Client Type = web application
* Enable imap reading with OAuth2 in RequestEMailProcessor
* Simplify the code - tested plain and OAuth2 can use the same methods
* Add +SCOPE parameter to AddAuthorizationForm according to IDEMPIERE-4713
* Rename the form AddAuthorizationMailForm to AddAuthorizationForm as is now more generic
* IDEMPIERE-4713
* Rename migration scripts to make it newer than IDEMPIERE-4713
* Add list of scopes attended by a credential
* Change form to accept other scopes, if no scope parameter is passed, then a list is shown, change the menu to fix the EMail scope
* Add MAuthorizationAccount.refreshAndGetAccessToken
* Add translation for messages
* make call generic oauth, avoid using specific google API
* Tests with microsoft as OAuth2 provider
* Add record for microsoft as provider
* Increase size of tokens
* Define mandatory and secure columns
* Update refresh token when it comes on the refresh call
* Revoke endpoint is optional
* Change the approach to a process instead of a form (WIP)
* Implement servlet to process the OAuth2 code
* Solve context suggestion from hengsin
* Implement the form in an automatic popup approach for running on zkwebui
* i18n - add translations for all messages that are shown to user
* on the form opted for click to avoid the problem with browsers forbidding popups
* clean spaces and tabs on line endings
* avoid logging and copy of the secure columns
* Fix problem reported by @d-ruiz about hidden NPE when SMTP Authentication is disabled
* Add writing to AD_PInstance_Para and AD_PInstance_Log the results of processing the servlet
* Control to avoid using the same authorization URL twice