echo lang('filter_location'); ?> "> <?php foreach (location_options($locations) as $id => $option) { echo '<option value="' . $id . '">' . $option . '</option>\\n'; } ?> </select> <select class="chosen-select select-leader" multiple data-placeholder="<?php echo lang('filter_leader'); ?> "> <?php foreach (leader_options($leaders) as $id => $option) { echo '<option value="' . $id . '">' . $option . '</option>\\n'; } ?> </select> <span class="fc-button fc-state-default" id="clearall" style="vertical-align: middle; -moz-user-select: none;"> <?php echo lang('clear_filters'); ?> </span> <div style="margin-top: 10px;"><label id="exclude-canceled-label" style="vertical-align: middle;"> <input type="checkbox" name="exclude-canceled" style="vertical-align: middle;" checked="checked" id="exclude-canceled" /> <?php
/** * * Shows the page for calling a participant * @param integer $participant_id * @param integer $experiment_id * @param integer $weeks_ahead */ public function call($participant_id, $experiment_id, $weeks_ahead = WEEKS_AHEAD) { // Retrieve entities $participant = $this->participantModel->get_participant_by_id($participant_id); $experiment = $this->experimentModel->get_experiment_by_id($experiment_id); // Check current user is caller for experiment if (!$this->callerModel->is_caller_for_experiment(current_user_id(), $experiment_id)) { $data['error'] = sprintf(lang('not_caller'), $experiment->name); $this->load->view('templates/error', $data); return; } // Check current participant is callable for experiment if (!in_array($participant, $this->participantModel->find_participants($experiment, $weeks_ahead))) { $data['error'] = sprintf(lang('not_callable_for'), name($participant), $experiment->name); $this->load->view('templates/error', $data); return; } // Check current participant is not being called if ($this->participationModel->is_locked_participant($participant_id, $experiment_id)) { $data['error'] = sprintf(lang('in_conversation'), name($participant)); $this->load->view('templates/error', $data); return; } // Retrieve links $comments = $this->commentModel->get_comments_by_participant($participant_id); $impediments = $this->impedimentModel->get_impediments_by_participant($participant_id); $experiments = $this->experimentModel->get_experiments_by_participant($participant_id); $participations = $this->participationModel->get_participations_by_experiment($experiment_id); $leaders = $this->leaderModel->get_leader_users_by_experiments($experiment_id); $first_visit = count($this->participationModel->get_participations_by_participant($participant_id, TRUE)) == 0; // Retrieve or create participation record $participation = $this->participationModel->get_participation($experiment_id, $participant_id); if ($participation) { $participation_id = $participation->id; } else { $participation_id = $this->participationModel->create_participation($experiment, $participant); $participation = $this->participationModel->get_participation_by_id($participation_id); } // Find the previous call (if is exists) $previous_call = $this->callModel->last_call($participation_id); // Lock the participation record $this->participationModel->lock($participation_id); // Create call record $call_id = $this->callModel->create_call($participation_id); // Find possible combined experiment, first check combinations $combinations = $this->relationModel->get_relation_ids_by_experiment($experiment->id, RelationType::Combination); $comb_exp = $combinations ? $this->experimentModel->get_experiment_by_id($combinations[0]) : FALSE; if (!$comb_exp) { // Then check prerequisites $prereqs = $this->relationModel->get_relation_ids_by_experiment($experiment->id, RelationType::Prerequisite); $comb_exp = $prereqs ? $this->experimentModel->get_experiment_by_id($prereqs[0]) : FALSE; } // Check if participation to combined experiment already exists $comb_part = $comb_exp ? $this->participationModel->get_participation($comb_exp->id, $participant_id) : FALSE; if ($comb_part) { $comb_exp = FALSE; } $comb_leaders = $comb_exp ? $this->leaderModel->get_leader_users_by_experiments($comb_exp->id) : array(); // Create page data $data = get_min_max_days($participant, $experiment); $data['participant'] = $participant; $data['experiment'] = $experiment; $data['participation'] = $participation; $data['participation_id'] = $participation_id; $data['leaders'] = leader_options($leaders); $data['call_id'] = $call_id; $data['previous_call'] = $previous_call; $data['comment_size'] = count($comments); $data['impediment_table'] = create_impediment_table($impediments); $data['impediment_size'] = count($impediments); $data['last_experiment'] = $this->participantModel->last_experiment($participant_id); $data['last_called'] = $this->participantModel->last_called($participant_id); $data['nr_participations'] = count($participations); $data['verify_languages'] = language_check($participant); $data['verify_dyslexia'] = dyslexia_check($participant); $data['first_visit'] = $first_visit; $data['combination_exp'] = $comb_exp; $data['combination_leaders'] = leader_options($comb_leaders); $data['page_title'] = sprintf(lang('call_participant'), name($participant)); $this->load->view('templates/header', $data); $this->load->view('participation_call', $data); $this->load->view('templates/footer'); }
/** Specifies the contents of the edit experiment page */ public function edit($experiment_id) { if (is_leader() && !$this->leaderModel->is_leader_for_experiment(current_user_id(), $experiment_id)) { show_error("You are not a leader for this experiment."); } $experiment = $this->experimentModel->get_experiment_by_id($experiment_id); $leaders = array_merge($this->userModel->get_all_leaders(), $this->userModel->get_all_admins()); $callers = $this->userModel->get_all_users(); $experiments = $this->experimentModel->get_all_experiments(TRUE, $experiment_id); $data['page_title'] = lang('edit_experiment'); $data['action'] = 'experiment/edit_submit/' . $experiment_id; $data = add_fields($data, 'experiment', $experiment); $data['date_start'] = output_date($experiment->date_start, TRUE); $data['date_end'] = output_date($experiment->date_end, TRUE); $data['locations'] = $this->locationModel->get_all_locations(); $data['callers'] = caller_options($callers); $data['leaders'] = leader_options($leaders); $data['experiments'] = experiment_options($experiments); $data['location_id'] = $this->locationModel->get_location_by_experiment($experiment)->id; $data['current_caller_ids'] = $this->callerModel->get_caller_ids_by_experiment($experiment_id); $data['current_leader_ids'] = $this->leaderModel->get_leader_ids_by_experiment($experiment_id); $data['current_prerequisite_ids'] = $this->relationModel->get_relation_ids_by_experiment($experiment_id, RelationType::Prerequisite); $data['current_exclude_ids'] = $this->relationModel->get_relation_ids_by_experiment($experiment_id, RelationType::Excludes); $data['current_combination_ids'] = $this->relationModel->get_relation_ids_by_experiment($experiment_id, RelationType::Combination); $this->load->view('templates/header', $data); $this->load->view('experiment_edit_view', $data); $this->load->view('templates/footer'); }