mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-03 11:59:16 +01:00
Basics of infolog-value and tracker-value widgets
This commit is contained in:
parent
aa6c36ba3f
commit
6ee7f3f219
@ -68,6 +68,9 @@ abstract class etemplate_widget_entry extends etemplate_widget_transformer
|
||||
$form_name = self::form_name($cname, $this->id);
|
||||
$data_id = $this->value ? self::form_name($cname, $this->value) : self::form_name($cname, self::ID_PREFIX . $this->id);
|
||||
|
||||
// No need to proceed
|
||||
if(!$this->id) return;
|
||||
|
||||
// Find out which record to load
|
||||
$value = self::get_array(self::$request->content, $form_name, false, true);
|
||||
|
||||
|
@ -93,11 +93,11 @@ var et2_entry = et2_valueWidget.extend(
|
||||
}
|
||||
var attrs = {
|
||||
id: this.options.field,
|
||||
type: entry.type,
|
||||
type: entry.type || 'label',
|
||||
readonly: this.options.readonly
|
||||
};
|
||||
var widget = et2_createWidget(attrs.type, attrs, this);
|
||||
}
|
||||
});
|
||||
|
||||
et2_register_widget(et2_entry, ["entry", 'contact-value', 'contact-account', 'contact-template']);
|
||||
et2_register_widget(et2_entry, ["entry", 'contact-value', 'contact-account', 'contact-template', 'infolog-value','tracker-value']);
|
@ -21,7 +21,7 @@
|
||||
* 3) colon (:) separted list of alternative fields: the first non-empty one is used if the selected value is empty
|
||||
* There's a special field "sum" in 1), which sums up all fields given in alternatives.
|
||||
*/
|
||||
class infolog_widget
|
||||
class infolog_widget extends etemplate_widget_entry
|
||||
{
|
||||
/**
|
||||
* exported methods of this class
|
||||
@ -56,14 +56,29 @@ class infolog_widget
|
||||
/**
|
||||
* Constructor of the extension
|
||||
*
|
||||
* @param string $ui '' for html
|
||||
*/
|
||||
function __construct($ui)
|
||||
function __construct($xml)
|
||||
{
|
||||
$this->ui = $ui;
|
||||
parent::__construct($xml);
|
||||
$this->infolog = new infolog_bo();
|
||||
}
|
||||
|
||||
public function get_entry($value, array $attrs)
|
||||
{
|
||||
// Already done
|
||||
if (is_array($value) && !(array_key_exists('app',$value) && array_key_exists('id', $value))) return $value;
|
||||
|
||||
// Link entry, already in array format
|
||||
if(is_array($value) && array_key_exists('app', $value) && array_key_exists('id', $value)) $value = $value['id'];
|
||||
|
||||
// Link entry, in string format
|
||||
if (substr($value,0,8) == 'infolog:') $value = substr($value,8);
|
||||
if($value)
|
||||
{
|
||||
return $this->infolog->read($value);
|
||||
}
|
||||
return array();
|
||||
}
|
||||
/**
|
||||
* pre-processing of the extension
|
||||
*
|
||||
@ -258,3 +273,6 @@ class infolog_widget
|
||||
return $fields;
|
||||
}
|
||||
}
|
||||
|
||||
// register widgets for etemplate2
|
||||
etemplate_widget::registerWidget('infolog_widget',array('infolog-value', 'infolog-fields'));
|
Loading…
Reference in New Issue
Block a user