From 7b1616d0c550c8ae0814cbfca13344a0d5f3de87 Mon Sep 17 00:00:00 2001 From: fhenry Date: Wed, 24 Apr 2013 19:14:03 +0200 Subject: [PATCH 1/7] Better management extrafield from list of table --- htdocs/core/tpl/admin_extrafields_add.tpl.php | 7 ++++--- htdocs/core/tpl/admin_extrafields_edit.tpl.php | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php index 44cc7a78bc0..1ca0b29708c 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -47,8 +47,8 @@ else if (type == 'varchar') { size.val('255').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); } else if (type == 'boolean') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();} else if (type == 'price') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();} - else if (type == 'select') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();} - else if (type == 'sellist') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();} + else if (type == 'select') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();jQuery("#helpselect").show();jQuery("#helpsellist").hide();} + else if (type == 'sellist') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();jQuery("#helpselect").hide();jQuery("#helpsellist").show();} else if (type == 'checkbox') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();} else if (type == 'radio') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();} else if (type == 'separate') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); required.val('').attr('disabled','disabled'); default_value.val('').attr('disabled','disabled'); jQuery("#value_choice").hide();} @@ -87,7 +87,8 @@ + +
-textwithpicto('', $langs->trans("ExtrafieldParamHelp".$type),1,0)?>
textwithpicto('', $langs->trans("ExtrafieldParamHelpselect"),1,0)?>textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist"),1,0)?>
diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index d3b06545fa2..18ea7623d66 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -66,6 +66,8 @@ if((($type == 'select') || ($type == 'checkbox') ||(($type == 'radio'))) && is_a $param_chain .= $key.', '.$value."\n"; } } +}elseif ($type== 'sellist') { + $param_chain = array_keys($param['options'])[0]; } ?> From 928a1afe18e0b968d170631a7ceb3c1a2df38d9e Mon Sep 17 00:00:00 2001 From: fhenry Date: Wed, 24 Apr 2013 21:32:22 +0200 Subject: [PATCH 2/7] Fix bug on Extrafield list table type --- htdocs/core/class/extrafields.class.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index e2986615dde..f9629f9bdf2 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -688,9 +688,10 @@ class ExtraFields elseif ($type == 'sellist') { $out=''; - - $InfoFieldList = explode(":", array_keys($param['options'])[0]); + $param_list=array_keys($param['options']); + $InfoFieldList = explode(":", $param_list[0]); var_export($param['options']); // 0 1 : tableName @@ -830,7 +830,8 @@ class ExtraFields } elseif ($type == 'sellist') { - $InfoFieldList = explode(":", array_keys($params['options'])[0]); + $param_list=array_keys($params['options']); + $InfoFieldList = explode(":", $param_list[0]); $keyList='rowid'; if (count($InfoFieldList)==3) $keyList=$InfoFieldList[2]; From 9a0f9477a6378d719e448cacfc4d5422519a60e6 Mon Sep 17 00:00:00 2001 From: fhenry Date: Thu, 25 Apr 2013 00:01:38 +0200 Subject: [PATCH 4/7] Fix multicompany problem with extrafield list from table --- htdocs/core/class/extrafields.class.php | 4 +++- htdocs/core/tpl/admin_extrafields_edit.tpl.php | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index d261af08416..6b21283c2f7 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -703,6 +703,7 @@ class ExtraFields $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; + $sql.= ' WHERE entity = '.$conf->entity; dol_syslog(get_class($this).':showInputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); @@ -839,7 +840,8 @@ class ExtraFields $sql = 'SELECT '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; - $sql.= ' where '.$keyList.'="'.$this->db->escape($value).'"'; + $sql.= ' WHERE '.$keyList.'="'.$this->db->escape($value).'"'; + $sql.= ' AND entity = '.$conf->entity; dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index 18ea7623d66..25c8ede2227 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -67,7 +67,8 @@ if((($type == 'select') || ($type == 'checkbox') ||(($type == 'radio'))) && is_a } } }elseif ($type== 'sellist') { - $param_chain = array_keys($param['options'])[0]; + $paramlist=array_keys($param['options']); + $param_chain = $paramlist[0]; } ?> From f1a97d4705b487822f4b8e842d13dd5746e7086c Mon Sep 17 00:00:00 2001 From: fhenry Date: Thu, 25 Apr 2013 00:02:29 +0200 Subject: [PATCH 5/7] remove ver_export --- htdocs/core/class/extrafields.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 6b21283c2f7..d2b65043c02 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -691,7 +691,6 @@ class ExtraFields $param_list=array_keys($param['options']); $InfoFieldList = explode(":", $param_list[0]); - var_export($param['options']); // 0 1 : tableName // 1 2 : label field name Nom du champ contenant le libelle // 2 3 : key fields name (if differ of rowid) From 507da4fc3b65ce413867277bc10b2ae518792754 Mon Sep 17 00:00:00 2001 From: fhenry Date: Thu, 25 Apr 2013 00:09:47 +0200 Subject: [PATCH 6/7] Add Zero entity to shared extrafield --- htdocs/core/class/extrafields.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index d2b65043c02..ce7135987d9 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -545,7 +545,7 @@ class ExtraFields $sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos"; $sql.= " FROM ".MAIN_DB_PREFIX."extrafields"; - $sql.= " WHERE entity = ".$conf->entity; + $sql.= " WHERE entity IN (0,".$conf->entity.")"; if ($elementtype) $sql.= " AND elementtype = '".$elementtype."'"; $sql.= " ORDER BY pos"; From 8c440b3f573cb2d2be703c676c93819779b262b6 Mon Sep 17 00:00:00 2001 From: fhenry Date: Thu, 25 Apr 2013 00:14:43 +0200 Subject: [PATCH 7/7] Remove entity check in list table extrafield --- htdocs/core/class/extrafields.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index ce7135987d9..6117b41d2eb 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -702,7 +702,7 @@ class ExtraFields $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; - $sql.= ' WHERE entity = '.$conf->entity; + //$sql.= ' WHERE entity = '.$conf->entity; dol_syslog(get_class($this).':showInputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); @@ -840,7 +840,7 @@ class ExtraFields $sql = 'SELECT '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; $sql.= ' WHERE '.$keyList.'="'.$this->db->escape($value).'"'; - $sql.= ' AND entity = '.$conf->entity; + //$sql.= ' AND entity = '.$conf->entity; dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql)