test
This commit is contained in:
@@ -227,9 +227,6 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
$prefix = t("<h2>Study Group ‐ !descrip</h2><p>Edit leaders and helpers for this group.</p>",
|
|
||||||
array('!descrip' => $studygroup->booking_studygroup_descrip));
|
|
||||||
|
|
||||||
//define the table header
|
//define the table header
|
||||||
$header = array (
|
$header = array (
|
||||||
'sid' => array('data' => t('Study Group Session ID'), 'field' => 'sid'),
|
'sid' => array('data' => t('Study Group Session ID'), 'field' => 'sid'),
|
||||||
@@ -243,6 +240,21 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) {
|
|||||||
drupal_get_path('module', 'booking') . '/booking.css',
|
drupal_get_path('module', 'booking') . '/booking.css',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$prefix = t("<h2>Edit Leaders/Helpers for Study Group ‐ !descrip</h2>",
|
||||||
|
array('!descrip' => $studygroup->booking_studygroup_descrip));
|
||||||
|
$prefix .= "<p>Enter part of a person's name in the text field and wait for the blue spinning circle to autocomplete with the person's details. " .
|
||||||
|
"Make sure you click on the person from the dropdown list that appears.</p>";
|
||||||
|
$form['first_para'] = array (
|
||||||
|
'#type' => 'markup',
|
||||||
|
'#markup' => $prefix,
|
||||||
|
);
|
||||||
|
|
||||||
|
//add this to the form in a hidden field so we can update the right studygroup
|
||||||
|
$form['booking_gid'] = array (
|
||||||
|
'#type' => 'hidden',
|
||||||
|
'#value' => $group_id,
|
||||||
|
);
|
||||||
|
|
||||||
//create the container element for the whole table
|
//create the container element for the whole table
|
||||||
$form['studygroups'] = array(
|
$form['studygroups'] = array(
|
||||||
'#prefix' => '<div id="studygroups">',
|
'#prefix' => '<div id="studygroups">',
|
||||||
@@ -276,7 +288,6 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) {
|
|||||||
|
|
||||||
//create the rows for the individual sessions (instances really) of this study group
|
//create the rows for the individual sessions (instances really) of this study group
|
||||||
for ($i = 1; $i <= $studygroup->booking_num_group_sessions; $i++) {
|
for ($i = 1; $i <= $studygroup->booking_num_group_sessions; $i++) {
|
||||||
|
|
||||||
$leader = array (
|
$leader = array (
|
||||||
'#id' => 'booking-studygroup-leader-' . $i,
|
'#id' => 'booking-studygroup-leader-' . $i,
|
||||||
'#type' => 'textfield',
|
'#type' => 'textfield',
|
||||||
@@ -348,7 +359,44 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) {
|
|||||||
function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||||
global $event;
|
global $event;
|
||||||
|
|
||||||
//$values = $form_state['input'];
|
$values = $form_state['input'];
|
||||||
watchdog('booking_debug', "<pre>Studygroup leader/helper test submission form :\n@info</pre>", array('@info' => print_r( $form_state, true)));
|
watchdog('booking_debug', "<pre>Studygroup leader/helper test submission form :\n@info</pre>", array('@info' => print_r( $form_state, true)));
|
||||||
|
|
||||||
}
|
$role_types = array(
|
||||||
|
'booking_studygroup_leader' => 1,
|
||||||
|
'booking_studygroup_helper' => 2,
|
||||||
|
'booking_studygroup_reserveleader' => 3,
|
||||||
|
);
|
||||||
|
//iterate over the different role types
|
||||||
|
foreach ($role_types as $type => $type_id) {
|
||||||
|
//iterate over the sessions for that role type
|
||||||
|
foreach ($values[$type] as $session_id => $person) {
|
||||||
|
//get the previous value
|
||||||
|
$previous_value = _booking_studygroup_leadhelp_edit_get_previous_value($form, $type, $session_id);
|
||||||
|
//compare it against $person
|
||||||
|
//if $person is now empty, do a delete query
|
||||||
|
//if $person is now different, run an update query
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* look through the previous form data and return the matching element
|
||||||
|
*/
|
||||||
|
function _booking_studygroup_leadhelp_edit_get_previous_value(&$form, $type, $session_id) {
|
||||||
|
foreach($form['form']['studygroups']['#rows'] as $key => $value) {
|
||||||
|
watchdog('booking_debug', "<pre>Studygroup assignment checker for type !type in session !session:\n@info</pre>",
|
||||||
|
array('!session' => $session_id, '!type' => $type, '@info' => print_r( $value, true)));
|
||||||
|
return;
|
||||||
|
if ((!empty($value[$type]['data']['#value'])) && ($value[$type]['data']['#name'] == $name)) {
|
||||||
|
//found the correct element, extract the node id
|
||||||
|
$person = $value[$type]['data']['#value'];
|
||||||
|
if (preg_match('/[\s\w,]+\s\[(\d+)\]/i', $person, $matches)) {
|
||||||
|
return $matches[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//in case there was no matching value, return an empty string
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user