mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 00:29:38 +01:00
Etemplate: Fix for some attributes not getting set
This commit is contained in:
parent
870cb9f175
commit
8910983c8e
@ -119,7 +119,7 @@ var et2_customfields_list = /** @class */ (function (_super) {
|
|||||||
if (!this.options || !this.options.customfields)
|
if (!this.options || !this.options.customfields)
|
||||||
return;
|
return;
|
||||||
// Already set up - avoid duplicates in nextmatch
|
// Already set up - avoid duplicates in nextmatch
|
||||||
if (this.getType() == 'customfields-list' && !this.isInTree())
|
if (this.getType() == 'customfields-list' && !this.isInTree() && Object.keys(this.widgets).length > 0)
|
||||||
return;
|
return;
|
||||||
if (!jQuery.isEmptyObject(this.widgets))
|
if (!jQuery.isEmptyObject(this.widgets))
|
||||||
return;
|
return;
|
||||||
@ -282,7 +282,7 @@ var et2_customfields_list = /** @class */ (function (_super) {
|
|||||||
// Make sure widget is created, and has the needed function
|
// Make sure widget is created, and has the needed function
|
||||||
if (!this.widgets[field_name] || !this.widgets[field_name].set_value)
|
if (!this.widgets[field_name] || !this.widgets[field_name].set_value)
|
||||||
continue;
|
continue;
|
||||||
var value = _value[this.options.prefix + field_name] ? _value[et2_customfields_list.PREFIX + field_name] : null;
|
var value = _value[this.options.prefix + field_name] ? _value[this.options.prefix + field_name] : null;
|
||||||
// Check if ID was missing
|
// Check if ID was missing
|
||||||
if (value == null && this.id == et2_customfields_list.DEFAULT_ID && this.getArrayMgr("content").getEntry(this.options.prefix + field_name)) {
|
if (value == null && this.id == et2_customfields_list.DEFAULT_ID && this.getArrayMgr("content").getEntry(this.options.prefix + field_name)) {
|
||||||
value = this.getArrayMgr("content").getEntry(this.options.prefix + field_name);
|
value = this.getArrayMgr("content").getEntry(this.options.prefix + field_name);
|
||||||
|
@ -189,7 +189,7 @@ export class et2_customfields_list extends et2_valueWidget implements et2_IDetac
|
|||||||
if(!this.options || !this.options.customfields) return;
|
if(!this.options || !this.options.customfields) return;
|
||||||
|
|
||||||
// Already set up - avoid duplicates in nextmatch
|
// Already set up - avoid duplicates in nextmatch
|
||||||
if(this.getType() == 'customfields-list' && !this.isInTree()) return;
|
if(this.getType() == 'customfields-list' && !this.isInTree() && Object.keys(this.widgets).length > 0) return;
|
||||||
if(!jQuery.isEmptyObject(this.widgets)) return;
|
if(!jQuery.isEmptyObject(this.widgets)) return;
|
||||||
|
|
||||||
// Check for global setting changes (visibility)
|
// Check for global setting changes (visibility)
|
||||||
@ -391,7 +391,7 @@ export class et2_customfields_list extends et2_valueWidget implements et2_IDetac
|
|||||||
|
|
||||||
// Make sure widget is created, and has the needed function
|
// Make sure widget is created, and has the needed function
|
||||||
if(!this.widgets[field_name] || !this.widgets[field_name].set_value) continue;
|
if(!this.widgets[field_name] || !this.widgets[field_name].set_value) continue;
|
||||||
let value = _value[this.options.prefix + field_name] ? _value[et2_customfields_list.PREFIX + field_name] : null;
|
let value = _value[this.options.prefix + field_name] ? _value[this.options.prefix + field_name] : null;
|
||||||
|
|
||||||
// Check if ID was missing
|
// Check if ID was missing
|
||||||
if(value == null && this.id == et2_customfields_list.DEFAULT_ID && this.getArrayMgr("content").getEntry(this.options.prefix + field_name))
|
if(value == null && this.id == et2_customfields_list.DEFAULT_ID && this.getArrayMgr("content").getEntry(this.options.prefix + field_name))
|
||||||
|
@ -195,7 +195,7 @@ class Widget
|
|||||||
$template = $this;
|
$template = $this;
|
||||||
while($reader->moveToNextAttribute())
|
while($reader->moveToNextAttribute())
|
||||||
{
|
{
|
||||||
if ($reader->name != 'id' && $template->attr[$reader->name] != $reader->value)
|
if ($reader->name != 'id' && $template->attr[$reader->name] !== $reader->value)
|
||||||
{
|
{
|
||||||
if (!$cloned)
|
if (!$cloned)
|
||||||
{
|
{
|
||||||
@ -209,7 +209,7 @@ class Widget
|
|||||||
// expand attributes values, otherwise eg. validation can not use attrs referencing to content
|
// expand attributes values, otherwise eg. validation can not use attrs referencing to content
|
||||||
if ($value[0] == '@' || strpos($value, '$cont') !== false)
|
if ($value[0] == '@' || strpos($value, '$cont') !== false)
|
||||||
{
|
{
|
||||||
$value = self::expand_name($value, null, null, null, null,
|
$template->attrs[$reader->name] = $value = self::expand_name($value, null, null, null, null,
|
||||||
isset(self::$cont) ? self::$cont : self::$request->content);
|
isset(self::$cont) ? self::$cont : self::$request->content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ class Customfields extends Transformer
|
|||||||
|
|
||||||
public function __construct($xml)
|
public function __construct($xml)
|
||||||
{
|
{
|
||||||
|
$this->attrs['prefix'] = self::$prefix;
|
||||||
parent::__construct($xml);
|
parent::__construct($xml);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,7 +125,7 @@ class Customfields extends Transformer
|
|||||||
$customfields =& $this->getElementAttribute(self::GLOBAL_VALS, 'customfields');
|
$customfields =& $this->getElementAttribute(self::GLOBAL_VALS, 'customfields');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$app)
|
if(!$app && !$customfields)
|
||||||
{
|
{
|
||||||
$app =& $this->setElementAttribute(self::GLOBAL_VALS, 'app', $GLOBALS['egw_info']['flags']['currentapp']);
|
$app =& $this->setElementAttribute(self::GLOBAL_VALS, 'app', $GLOBALS['egw_info']['flags']['currentapp']);
|
||||||
if ($this->attrs['sub-app']) $app .= '-'.$this->attrs['sub-app'];
|
if ($this->attrs['sub-app']) $app .= '-'.$this->attrs['sub-app'];
|
||||||
@ -138,6 +139,10 @@ class Customfields extends Transformer
|
|||||||
// app changed
|
// app changed
|
||||||
$customfields =& Api\Storage\Customfields::get($app);
|
$customfields =& Api\Storage\Customfields::get($app);
|
||||||
}
|
}
|
||||||
|
if($this->attrs['customfields'])
|
||||||
|
{
|
||||||
|
$customfields = $this->attrs['customfields'];
|
||||||
|
}
|
||||||
// Filter fields
|
// Filter fields
|
||||||
if($this->attrs['field-names'])
|
if($this->attrs['field-names'])
|
||||||
{
|
{
|
||||||
@ -174,20 +179,20 @@ class Customfields extends Transformer
|
|||||||
|
|
||||||
// Rmove fields for none private cutomfields when name refers to a single custom field
|
// Rmove fields for none private cutomfields when name refers to a single custom field
|
||||||
$matches = null;
|
$matches = null;
|
||||||
if (($pos=strpos($form_name,self::$prefix)) !== false &&
|
if (($pos=strpos($form_name,$this->attrs['prefix'])) !== false &&
|
||||||
preg_match($preg = '/'.self::$prefix.'([^\]]+)/',$form_name,$matches) && !isset($fields[$name=$matches[1]]))
|
preg_match($preg = '/'.$this->attrs['prefix'].'([^\]]+)/',$form_name,$matches) && !isset($fields[$name=$matches[1]]))
|
||||||
{
|
{
|
||||||
unset($fields[$key]);
|
unset($fields[$key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// check if name refers to a single custom field --> show only that
|
// check if name refers to a single custom field --> show only that
|
||||||
$matches = null;
|
$matches = null;
|
||||||
if (($pos=strpos($form_name,self::$prefix)) !== false && // allow the prefixed name to be an array index too
|
if (($pos=strpos($form_name,$this->attrs['prefix'])) !== false && // allow the prefixed name to be an array index too
|
||||||
preg_match($preg = '/'.self::$prefix.'([^\]]+)/',$form_name,$matches) && isset($fields[$name=$matches[1]]))
|
preg_match($preg = '/'.$this->attrs['prefix'].'([^\]]+)/',$form_name,$matches) && isset($fields[$name=$matches[1]]))
|
||||||
{
|
{
|
||||||
$fields = array($name => $fields[$name]);
|
$fields = array($name => $fields[$name]);
|
||||||
$value = array(self::$prefix.$name => $value);
|
$value = array($this->attrs['prefix'].$name => $value);
|
||||||
$form_name = self::$prefix.$name;
|
$form_name = $this->attrs['prefix'].$name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_array($fields)) $fields = array();
|
if(!is_array($fields)) $fields = array();
|
||||||
@ -216,7 +221,7 @@ class Customfields extends Transformer
|
|||||||
{
|
{
|
||||||
if (!empty($this->attrs['sub-type']) && !empty($field['type2']) &&
|
if (!empty($this->attrs['sub-type']) && !empty($field['type2']) &&
|
||||||
strpos(','.$field['type2'].',',','.$field['type2'].',') === false) continue; // not for our content type//
|
strpos(','.$field['type2'].',',','.$field['type2'].',') === false) continue; // not for our content type//
|
||||||
if (isset($value[self::$prefix.$lname]) && $value[self::$prefix.$lname] !== '') //break;
|
if (isset($value[$this->attrs['prefix'].$lname]) && $value[$this->attrs['prefix'].$lname] !== '') //break;
|
||||||
{
|
{
|
||||||
$fields_with_vals[]=$lname;
|
$fields_with_vals[]=$lname;
|
||||||
}
|
}
|
||||||
@ -400,7 +405,14 @@ class Customfields extends Transformer
|
|||||||
// if we have no id / use self::GLOBAL_ID, we have to set $value_in in global namespace for regular widgets validation to find
|
// if we have no id / use self::GLOBAL_ID, we have to set $value_in in global namespace for regular widgets validation to find
|
||||||
if (!$this->id) $content = array_merge($content, $value_in);
|
if (!$this->id) $content = array_merge($content, $value_in);
|
||||||
//error_log(__METHOD__."($cname, ...) form_name=$form_name, use-private={$this->attrs['use-private']}, value_in=".array2string($value_in));
|
//error_log(__METHOD__."($cname, ...) form_name=$form_name, use-private={$this->attrs['use-private']}, value_in=".array2string($value_in));
|
||||||
$customfields =& $this->getElementAttribute(self::GLOBAL_VALS, 'customfields');
|
if($this->getElementAttribute($form_name, 'customfields'))
|
||||||
|
{
|
||||||
|
$customfields =& $this->getElementAttribute($form_name, 'customfields');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$customfields =& $this->getElementAttribute(self::GLOBAL_VALS, 'customfields');
|
||||||
|
}
|
||||||
if(is_array($value_in))
|
if(is_array($value_in))
|
||||||
{
|
{
|
||||||
foreach(array_keys($value_in) as $field)
|
foreach(array_keys($value_in) as $field)
|
||||||
|
Loading…
Reference in New Issue
Block a user