mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-01 02:49:28 +01:00
backport of Nathans r48352: Fix history log widget no longer working
This commit is contained in:
parent
de3cb0f4db
commit
0a93f3dc0c
@ -63,4 +63,27 @@ class etemplate_widget_historylog extends etemplate_widget
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate input
|
||||||
|
*
|
||||||
|
* For dates (except duration), it is always a full timestamp in W3C format,
|
||||||
|
* which we then convert to the format the application is expecting. This can
|
||||||
|
* be either a unix timestamp, just a date, just time, or whatever is
|
||||||
|
* specified in the template.
|
||||||
|
*
|
||||||
|
* @param string $cname current namespace
|
||||||
|
* @param array $expand values for keys 'c', 'row', 'c_', 'row_', 'cont'
|
||||||
|
* @param array $content
|
||||||
|
* @param array &$validated=array() validated content
|
||||||
|
* @return boolean true if no validation error, false otherwise
|
||||||
|
*/
|
||||||
|
public function validate($cname, array $expand, array $content, &$validated=array())
|
||||||
|
{
|
||||||
|
$form_name = self::form_name($cname, $this->id, $expand);
|
||||||
|
$value = self::get_array($content, $form_name);
|
||||||
|
$valid =& self::get_array($validated, $form_name, true);
|
||||||
|
$valid = $value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -294,14 +294,17 @@ class etemplate_widget_nextmatch extends etemplate_widget
|
|||||||
if (($template = etemplate_widget_template::instance(self::$request->template['name'], self::$request->template['template_set'],
|
if (($template = etemplate_widget_template::instance(self::$request->template['name'], self::$request->template['template_set'],
|
||||||
self::$request->template['version'], self::$request->template['load_via'])))
|
self::$request->template['version'], self::$request->template['load_via'])))
|
||||||
{
|
{
|
||||||
$template = $template->getElementById($form_name);
|
$template = $template->getElementById($form_name, strpos($form_name, 'history') == 0 ? 'historylog' : 'nextmatch');
|
||||||
$expand = array(
|
$expand = array(
|
||||||
'cont' => array($form_name => $filters),
|
'cont' => array($form_name => $filters),
|
||||||
);
|
);
|
||||||
$valid_filters = array();
|
$valid_filters = array();
|
||||||
|
|
||||||
|
if($template)
|
||||||
|
{
|
||||||
$template->run('validate', array('', $expand, $expand['cont'], &$valid_filters), false); // $respect_disabled=false: as client may disable things, here we validate everything and leave it to the get_rows to interpret
|
$template->run('validate', array('', $expand, $expand['cont'], &$valid_filters), false); // $respect_disabled=false: as client may disable things, here we validate everything and leave it to the get_rows to interpret
|
||||||
$filters = $valid_filters[$form_name];
|
$filters = $valid_filters[$form_name];
|
||||||
|
}
|
||||||
//error_log($this . " Valid filters: " . array2string($filters));
|
//error_log($this . " Valid filters: " . array2string($filters));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
*/
|
*/
|
||||||
var et2_historylog = et2_valueWidget.extend([et2_IDataProvider],
|
var et2_historylog = et2_valueWidget.extend([et2_IDataProvider],
|
||||||
{
|
{
|
||||||
|
createNamespace: true,
|
||||||
attributes: {
|
attributes: {
|
||||||
"value": {
|
"value": {
|
||||||
"name": "Value",
|
"name": "Value",
|
||||||
@ -52,8 +53,8 @@ var et2_historylog = et2_valueWidget.extend([et2_IDataProvider],
|
|||||||
{'id': 'user_ts', caption: 'Date', 'width': '120px', widget_type: 'date-time'},
|
{'id': 'user_ts', caption: 'Date', 'width': '120px', widget_type: 'date-time'},
|
||||||
{'id': 'owner', caption: 'User', 'width': '150px', widget_type: 'select-account'},
|
{'id': 'owner', caption: 'User', 'width': '150px', widget_type: 'select-account'},
|
||||||
{'id': 'status', caption: 'Changed', 'width': '120px', widget_type: 'select'},
|
{'id': 'status', caption: 'Changed', 'width': '120px', widget_type: 'select'},
|
||||||
{'id': 'new_value', caption: 'New Value', 'width': 'auto'},
|
{'id': 'new_value', caption: 'New Value', 'width': '50%'},
|
||||||
{'id': 'old_value', caption: 'Old Value', 'width': 'auto'}
|
{'id': 'old_value', caption: 'Old Value', 'width': '50%'}
|
||||||
],
|
],
|
||||||
|
|
||||||
TIMESTAMP: 0, OWNER: 1, FIELD: 2, NEW_VALUE: 3, OLD_VALUE: 4,
|
TIMESTAMP: 0, OWNER: 1, FIELD: 2, NEW_VALUE: 3, OLD_VALUE: 4,
|
||||||
@ -415,7 +416,13 @@ var et2_historylog = et2_valueWidget.extend([et2_IDataProvider],
|
|||||||
{
|
{
|
||||||
nodes = self.columns[i].nodes.clone();
|
nodes = self.columns[i].nodes.clone();
|
||||||
}
|
}
|
||||||
else if (self._needsDiffWidget(_data['status'], _data[self.columns[self.OLD_VALUE].id]) ||
|
else if ((
|
||||||
|
// Already parsed & cached
|
||||||
|
typeof _data[self.columns[self.NEW_VALUE].id] == "object" &&
|
||||||
|
typeof _data[self.columns[self.NEW_VALUE].id].new != "undefined") ||
|
||||||
|
// Large old value
|
||||||
|
self._needsDiffWidget(_data['status'], _data[self.columns[self.OLD_VALUE].id]) ||
|
||||||
|
// Large new value
|
||||||
self._needsDiffWidget(_data['status'], _data[self.columns[self.NEW_VALUE].id]))
|
self._needsDiffWidget(_data['status'], _data[self.columns[self.NEW_VALUE].id]))
|
||||||
{
|
{
|
||||||
// Large text value - span both columns, and show a nice diff
|
// Large text value - span both columns, and show a nice diff
|
||||||
@ -426,10 +433,13 @@ var et2_historylog = et2_valueWidget.extend([et2_IDataProvider],
|
|||||||
widget = self.diff.widget;
|
widget = self.diff.widget;
|
||||||
nodes = self.diff.nodes.clone();
|
nodes = self.diff.nodes.clone();
|
||||||
|
|
||||||
|
if (typeof _data[self.columns[self.NEW_VALUE].id] == "string")
|
||||||
|
{
|
||||||
_data[self.columns[i].id] = {
|
_data[self.columns[i].id] = {
|
||||||
'old': _data[self.columns[i+1].id],
|
'old': _data[self.columns[i+1].id],
|
||||||
'new': _data[self.columns[i].id]
|
'new': _data[self.columns[i].id]
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Skip column 4
|
// Skip column 4
|
||||||
jthis.parents("td").attr("colspan", 2)
|
jthis.parents("td").attr("colspan", 2)
|
||||||
|
@ -944,7 +944,7 @@ var et2_selectbox_ro = et2_selectbox.extend([et2_IDetachedDOM],
|
|||||||
for(var o in this.optionValues)
|
for(var o in this.optionValues)
|
||||||
{
|
{
|
||||||
var option = this.optionValues[o];
|
var option = this.optionValues[o];
|
||||||
var key = typeof option == 'object' && typeof option.value != 'undefined' ? option.value : o;
|
var key = typeof option == 'object' && option != null && typeof option.value != 'undefined' ? option.value : o;
|
||||||
if (key != _value[i]) continue;
|
if (key != _value[i]) continue;
|
||||||
var label = typeof option == 'object' ? option.label : option;
|
var label = typeof option == 'object' ? option.label : option;
|
||||||
if (_value.length == 1)
|
if (_value.length == 1)
|
||||||
|
@ -349,9 +349,6 @@ tr.dialogOperators td,
|
|||||||
#infolog-edit table.egwGridView_outer {
|
#infolog-edit table.egwGridView_outer {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
#infolog-edit #infolog-edit_history {
|
|
||||||
max-width: 785px;
|
|
||||||
}
|
|
||||||
#infolog-edit div.et2_hbox {
|
#infolog-edit div.et2_hbox {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
@ -290,19 +290,13 @@ div.et2_box_widget{
|
|||||||
table.egwGridView_outer{
|
table.egwGridView_outer{
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
// Tab History
|
|
||||||
|
|
||||||
#infolog-edit_history{
|
|
||||||
max-width: 785px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.et2_hbox {
|
div.et2_hbox {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.infolog_fixedHeight {
|
.infolog_fixedHeight {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TYP
|
//TYP
|
||||||
|
Loading…
Reference in New Issue
Block a user