private function changesTable($records, $sort, $show_user)
{
global $controller;
$table_id = 'table-chan-' . Uuid::uuid4();
// lists requires a unique ID in case there are multiple lists per page
switch ($sort) {
case 'name':
default:
$aaSorting = "[1,'asc'], [2,'desc']";
break;
case 'date_asc':
$aaSorting = "[2,'asc'], [1,'asc']";
break;
case 'date_desc':
$aaSorting = "[2,'desc'], [1,'asc']";
break;
}
$html = '';
$controller->addExternalJavascript(WT_JQUERY_DATATABLES_JS_URL)->addInlineJavascript('
jQuery("#' . $table_id . '").dataTable({
dom: \'t\',
paging: false,
autoWidth:false,
lengthChange: false,
filter: false,
' . I18N::datatablesI18N() . ',
jQueryUI: true,
sorting: [' . $aaSorting . '],
columns: [
{ sortable: false, class: "center" },
null,
null,
{ visible: ' . ($show_user ? 'true' : 'false') . ' }
]
});
');
$html .= '<table id="' . $table_id . '" class="width100">';
$html .= '<thead><tr>';
$html .= '<th></th>';
$html .= '<th>' . I18N::translate('Record') . '</th>';
$html .= '<th>' . GedcomTag::getLabel('CHAN') . '</th>';
$html .= '<th>' . GedcomTag::getLabel('_WT_USER') . '</th>';
$html .= '</tr></thead><tbody>';
foreach ($records as $record) {
$html .= '<tr><td>';
switch ($record::RECORD_TYPE) {
case 'INDI':
$html .= $record->getSexImage('small');
break;
case 'FAM':
$html .= '<i class="icon-button_family"></i>';
break;
case 'OBJE':
$html .= '<i class="icon-button_media"></i>';
break;
case 'NOTE':
$html .= '<i class="icon-button_note"></i>';
break;
case 'SOUR':
$html .= '<i class="icon-button_source"></i>';
break;
case 'REPO':
$html .= '<i class="icon-button_repository"></i>';
break;
}
$html .= '</td>';
$html .= '<td data-sort="' . Filter::escapeHtml($record->getSortName()) . '">';
$html .= '<a href="' . $record->getHtmlUrl() . '">' . $record->getFullName() . '</a>';
$addname = $record->getAddName();
if ($addname) {
$html .= '<div class="indent"><a href="' . $record->getHtmlUrl() . '">' . $addname . '</a></div>';
}
$html .= '</td>';
$html .= '<td data-sort="' . $record->lastChangeTimestamp(true) . '">' . $record->lastChangeTimestamp() . '</td>';
$html .= '<td>' . Filter::escapeHtml($record->lastChangeUser()) . '</td>';
$html .= '</tr>';
}
$html .= '</tbody></table>';
return $html;
}