private function loadDataGrid()
{
list($query, $parameters) = $this->buildQuery();
// create datagrid
$this->dataGrid = new BackendDataGridDB($query, $parameters);
// overrule default URL
$this->dataGrid->setURL(BackendModel::createURLForAction(null, null, null, array('offset' => '[offset]', 'order' => '[order]', 'sort' => '[sort]', 'start_date' => $this->filter['start_date'], 'end_date' => $this->filter['end_date']), false) . '&id=' . $this->id);
// sorting columns
$this->dataGrid->setSortingColumns(array('sent_on'), 'sent_on');
$this->dataGrid->setSortParameter('desc');
// check if this action is allowed
if (BackendAuthentication::isAllowedAction('DataDetails')) {
// set colum URLs
$this->dataGrid->setColumnURL('sent_on', BackendModel::createURLForAction('DataDetails', null, null, array('start_date' => $this->filter['start_date'], 'end_date' => $this->filter['end_date']), false) . '&id=[id]');
// add edit column
$this->dataGrid->addColumn('details', null, BL::getLabel('Details'), BackendModel::createURLForAction('DataDetails', null, null, array('start_date' => $this->filter['start_date'], 'end_date' => $this->filter['end_date'])) . '&id=[id]', BL::getLabel('Details'));
}
// date
$this->dataGrid->setColumnFunction(array(new BackendFormBuilderModel(), 'calculateTimeAgo'), '[sent_on]', 'sent_on', false);
$this->dataGrid->setColumnFunction('ucfirst', '[sent_on]', 'sent_on', false);
// add the multicheckbox column
$this->dataGrid->setMassActionCheckboxes('check', '[id]');
// mass action
$ddmMassAction = new \SpoonFormDropdown('action', array('delete' => BL::getLabel('Delete')), 'delete');
$ddmMassAction->setOptionAttributes('delete', array('data-target' => '#confirmDelete'));
$this->dataGrid->setMassAction($ddmMassAction);
}