function services_client_error_admin_list in Services Client 7
Same name and namespace in other branches
- 7.2 services_client_error/services_client_error.admin.inc \services_client_error_admin_list()
List all services client errors
1 string reference to 'services_client_error_admin_list'
- services_client_error_menu in services_client_error/
services_client_error.module - Implements hook_menu().
File
- services_client_error/
services_client_error.admin.inc, line 11 - Administration callbacks for error handling.
Code
function services_client_error_admin_list() {
$header = array(
array(
'data' => 'Date',
'field' => 'created',
'sort' => 'desc',
),
array(
'data' => 'Entity',
),
array(
'data' => 'Entity Id',
),
array(
'data' => 'Hook',
),
array(
'data' => 'Connection',
),
array(
'data' => 'Task',
),
array(
'data' => 'Retries',
),
array(
'data' => 'Status',
),
array(
'data' => 'Code',
),
array(
'data' => 'Message',
),
array(
'data' => 'Actions',
),
);
$query = db_select('services_client_error', 's')
->fields('s', array(
'eid',
'created',
'entity_type',
'entity_id',
'hook',
'connection',
'task',
'retries',
'status',
'error_code',
'error_message',
))
->extend('PagerDefault')
->limit(50)
->extend('TableSort')
->orderByHeader($header);
// Status filter was applied.
$statuses = services_client_error_status_map();
if (isset($_GET['status']) && in_array($_GET['status'], array_keys($statuses))) {
$query
->condition('status', $_GET['status'], '=');
}
$rows = array();
foreach ($query
->execute() as $error) {
$error = (array) $error;
$entity = reset(entity_load($error['entity_type'], array(
$error['entity_id'],
)));
$row = array(
'created' => format_date($error['created'], 'short'),
'entity_type' => check_plain($error['entity_type']),
'entity_id' => check_plain($error['entity_id']),
'hook' => check_plain($error['hook']),
'connection' => check_plain($error['connection']),
'task' => check_plain($error['task']),
'retries' => check_plain($error['retries']),
'status' => services_client_error_status_title($error['status']),
'error_code' => check_plain($error['error_code']),
'error_message' => check_plain($error['error_message']),
);
$actions = array();
// If entity still exists on system, show link.
if (!empty($entity)) {
$uri = entity_uri($error['entity_type'], $entity);
$actions[] = l(t('View Entity'), $uri['path'], $uri['options']);
}
$actions[] = l(t('History'), 'admin/structure/services_client/errors/' . $error['eid'] . '/log', array(
'query' => drupal_get_destination(),
));
$actions[] = l(t('Delete'), 'admin/structure/services_client/errors/' . $error['eid'] . '/delete', array(
'query' => drupal_get_destination(),
));
if (!empty($entity) && $error['status'] != SC_ERROR_COMPLETED) {
$actions[] = l(t('Retry'), 'admin/structure/services_client/errors/' . $error['eid'] . '/retry', array(
'query' => drupal_get_destination(),
));
}
$row['actions'] = implode(' | ', $actions);
$rows[] = $row;
}
$filters = array(
array(
'title' => t('All'),
'href' => 'admin/structure/services_client/errors',
),
);
foreach (services_client_error_status_map() as $id => $name) {
// $filters[] = l($name, 'admin/structure/services_client/errors', array('query' => array('status' => $id)));
$filters[] = array(
'title' => $name,
'href' => 'admin/structure/services_client/errors',
'query' => array(
'status' => $id,
),
);
}
$output['filter'] = array(
'#theme' => 'links',
'#links' => $filters,
'#heading' => t("Filter"),
'#attributes' => array(
'class' => array(
'links',
'inline',
),
),
);
$output['table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#sticky' => TRUE,
'#empty' => !isset($_GET['status']) ? t('No syncing errors. Wohoo!') : t('No errors matching filter criteria'),
);
$output['pager'] = array(
'#theme' => 'pager',
);
return $output;
}