+102
-3
@@ -19,7 +19,7 @@ function feedback_admin_view_form($form, &$form_state) {
|
||||
array('data' => t('Date'), 'field' => 'f.timestamp'),
|
||||
array('data' => t('User'), 'field' => 'u.name'),
|
||||
t('Message'),
|
||||
t('Delete'),
|
||||
t('Operations'),
|
||||
);
|
||||
// Hack to prevent pager_query() from issuing PHP notices.
|
||||
if (!isset($_GET['page'])) {
|
||||
@@ -58,7 +58,20 @@ function feedback_admin_view_form($form, &$form_state) {
|
||||
$form['feedback-messages'][$status][$fid]['date'] = array('#markup' => format_date($entry->timestamp, 'small'));
|
||||
$form['feedback-messages'][$status][$fid]['user'] = array('#markup' => check_plain(format_username($entry)));
|
||||
$form['feedback-messages'][$status][$fid]['message'] = feedback_format_message($entry);
|
||||
$form['feedback-messages'][$status][$fid]['delete'] = array('#type' => 'link', '#title' => t('delete'), '#href' => "admin/reports/feedback/$fid/delete");
|
||||
$form['feedback-messages'][$status][$fid]['operations'] = array(
|
||||
'#theme' => 'links',
|
||||
'#links' => array(
|
||||
'edit' => array(
|
||||
'title' => t('edit'),
|
||||
'href' => "admin/reports/feedback/$fid/edit"
|
||||
),
|
||||
'delete' => array(
|
||||
'title' => t('delete'),
|
||||
'href' => "admin/reports/feedback/$fid/delete"
|
||||
),
|
||||
),
|
||||
'#attributes' => array(),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,7 +106,7 @@ function theme_feedback_admin_view_form($variables) {
|
||||
drupal_render($entry['date']),
|
||||
drupal_render($entry['user']),
|
||||
drupal_render($entry['message']),
|
||||
drupal_render($entry['delete']),
|
||||
drupal_render($entry['operations']),
|
||||
);
|
||||
// Render the checkbox.
|
||||
$rows[count($rows) - 1][0] = drupal_render($entry);
|
||||
@@ -133,6 +146,92 @@ function feedback_admin_view_form_submit($form, &$form_state) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form builder; Feedback entry edit form.
|
||||
*
|
||||
* @ingroup forms
|
||||
*/
|
||||
function feedback_entry_form($form, &$form_state, $entry) {
|
||||
$form['#fid'] = $entry->fid;
|
||||
|
||||
$form['location'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Location'),
|
||||
'#required' => TRUE,
|
||||
'#default_value' => $entry->location,
|
||||
);
|
||||
|
||||
$account = user_load($entry->uid);
|
||||
$form['user'] = array(
|
||||
'#title' => t('User'),
|
||||
'#type' => 'item',
|
||||
'#markup' => theme('username', array('account' => $account)),
|
||||
);
|
||||
|
||||
$form['status'] = array(
|
||||
'#title' => t('Processed'),
|
||||
'#type' => 'radios',
|
||||
'#options' => array(
|
||||
FEEDBACK_OPEN => 'Open',
|
||||
FEEDBACK_PROCESSED => 'Processed',
|
||||
),
|
||||
'#default_value' => $entry->status,
|
||||
);
|
||||
|
||||
$form['message'] = array(
|
||||
'#type' => 'textarea',
|
||||
'#title' => t('Message'),
|
||||
'#required' => TRUE,
|
||||
'#wysiwyg' => FALSE,
|
||||
'#default_value' => $entry->message,
|
||||
);
|
||||
|
||||
field_attach_form('feedback', $entry, $form, $form_state);
|
||||
|
||||
$form['actions'] = array(
|
||||
'#type' => 'actions',
|
||||
);
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Submit'),
|
||||
);
|
||||
$form['actions']['delete'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Delete'),
|
||||
'#submit' => array('feedback_entry_form_delete_submit'),
|
||||
);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submit callback for entry edit form.
|
||||
*/
|
||||
function feedback_entry_form_submit(&$form, &$form_state) {
|
||||
$entry = feedback_load($form['#fid']);
|
||||
entity_form_submit_build_entity('feedback', $entry, $form, $form_state);
|
||||
$entry->message = $form_state['values']['message'];
|
||||
$entry->location = $form_state['values']['location'];
|
||||
$entry->location_masked = feedback_mask_path($entry->location);
|
||||
$entry->url = url($entry->location, array('absolute' => TRUE));
|
||||
$entry->status = $form_state['values']['status'];
|
||||
feedback_save($entry);
|
||||
drupal_set_message(t('The entry has been updated.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Button submit function: handle the 'Delete' button on the feedback entry edit form.
|
||||
*/
|
||||
function feedback_entry_form_delete_submit($form, &$form_state) {
|
||||
$destination = array();
|
||||
if (isset($_GET['destination'])) {
|
||||
$destination = drupal_get_destination();
|
||||
unset($_GET['destination']);
|
||||
}
|
||||
$fid = $form['#fid'];
|
||||
$form_state['redirect'] = array('admin/reports/feedback/' . $fid . '/delete', array('query' => $destination));
|
||||
}
|
||||
|
||||
/**
|
||||
* Form builder; The general feedback settings form.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user