Placeholders for every fields
Description
Idea is to implement placeholders for every fields (windows, process parameters ,...)
See : https://groups.google.com/d/msg/idempiere/JU8tuPNqVw0/ciurYVQJAgAJ
Environment
Activity
Thanks , committed your suggestion.
Hi
I do believe that we have an issue whit the view ad_field_vt as it return the number of records as multiplied with the numbers of installed language in the system. This gives an error when opening a window in iDempiere!
The following is the correction I have made:
CREATE OR REPLACE VIEW ad_field_vt AS
SELECT trl.ad_language, t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, trl.name, trl.description, trl.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno,
f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, COALESCE(f.VFormat, c.VFormat) AS VFormat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue,
c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id,
c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable,
c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable,
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype,
fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid,
f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(trl.placeholder, ct.placeholder) AS placeholder
FROM ad_field f
JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id
LEFT JOIN ad_fieldgroup_trl fgt ON f.ad_fieldgroup_id = fgt.ad_fieldgroup_id AND trl.ad_language::text = fgt.ad_language::text
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
LEFT JOIN ad_column_trl ct ON f.ad_column_id = ct.ad_column_id AND trl.ad_language::text = ct.ad_language::text
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
WHERE f.isactive = 'Y' AND c.isactive = 'Y'
/Flemming
Thanks
> -> fixed for AD_Field_V (not AD_Field_vt to make it consistent with name, description, ...)
I think name and description are different as they are not "inherited" from column when they are empty.
I fixed that in the script.
> > almost done as i haven't touch the AD_COLUMN_TRL fo postgresql (i'm not able to test it :/) ; the script ran without error on Oracle ; not tested on postgresql
OK, fixed in postgresql too - as postgresql now shares the same syntax of oracle I made the two scripts in sync.
Regards,
Carlos Ruiz
Hi
Please find an updated patch:
I think you forgot to add PlaceHolderPostal_Add to C_Country_Trl ->
fixed
Add missing translations is throwing error because of that.
For the classes adding public methods please regenerate serialVersionUID ->
done
In the views, instead of
f.placeholder
I think you must add
COALESCE(f.placeholder, c.placeholder) AS placeholder
-> fixed for AD_Field_V (not AD_Field_vt to make it consistent with name, description, ...)
The change on SynchronizeTerminology.java must be applied too to migration/processes_post_migration/postgresql/02_SynchronizeTerminology.sql
> almost done as i haven't touch the AD_COLUMN_TRL fo postgresql (i'm not able to test it :/) ; the script ran without error on Oracle ; not tested on postgresql
nb: i haven't updated the IsSOTrx='N' part as there is no such field for placeholder
In InfoWindow.java - comments must be in english
-> fixed (this modification was not part of the patch)
Is there any placeholder that we might set up in the default core? Maybe migrate the old from/to placeholders in range process parameter to the new approach?
-> My first idea was to set it to the Value or Name Element. But I fear this change could lead to big changes for end users. I will attach the script for inserting data in placeholder fields for range parameters (is ok on oracle, not tested on postgresql)
Nicolas