示例#1
0
 public function modify($log_id = null)
 {
     //////////////////////////////////////////////////
     // Security                                     //
     //////////////////////////////////////////////////
     // Must be logged in
     if (!$this->valid_logged_in) {
         redirect('users/login');
     }
     // Must have log_id in url
     if (!$log_id) {
         redirect('exercises/view');
     }
     $log = new ExerciseLog($log_id);
     // Log must exist
     if (!$log->exists()) {
         redirect('exercises/view');
     }
     // Exercise from log
     $exercise = $log->exercise;
     $exercise->get();
     // User from exercise
     $user = $exercise->user;
     $user->get();
     // User id from exercise must match logged in user
     if ($user->id != $this->user_id) {
         redirect('exercises/view');
     }
     //////////////////////////////////////////////////
     // End Security                                 //
     //////////////////////////////////////////////////
     $this->load->helper(array('date', 'distance', 'form', 'time'));
     $this->load->library('form_validation');
     if ($this->form_validation->run('exercises_modify_log') == FALSE) {
         $data['exercise'] = $exercise->getData();
         $data['log'] = array('id' => $log->id, 'date' => date_mysql_std($log->date), 'time' => time_seconds_to_units($log->time), 'distance' => distance_meters_to_miles($log->distance), 'laps' => $log->laps, 'wght' => $log->weight, 'reps' => $log->repetitions, 'sets' => $log->sets);
         $data['content'] = 'exerciselogs/modify';
         $data['javascript'] = array('jquery', 'jquery-ui', 'date');
         $data['css'] = array('calendar_widget/jquery-ui');
         $this->load->view('master', $data);
     } else {
         $date = $this->input->post('date');
         $time_hours = $this->input->post('time_hours');
         $time_minutes = $this->input->post('time_minutes');
         $time_seconds = $this->input->post('time_seconds');
         $distance = $this->input->post('distance');
         $laps = $this->input->post('laps');
         $wght = $this->input->post('wght');
         $reps = $this->input->post('reps');
         $sets = $this->input->post('sets');
         $log->distance = distance_miles_to_meters($distance);
         $log->time = time_seconds($time_hours, $time_minutes, $time_seconds);
         $log->date = date_std_mysql($date);
         $log->laps = $laps;
         $log->weight = $wght;
         $log->repetitions = $reps;
         $log->sets = $sets;
         $log->save();
         redirect('exercises/view');
     }
 }
示例#2
0
 public function view_one($exercise_id = null)
 {
     // Must be logged in and exercise_id must be supplied
     if (!$this->valid_logged_in) {
         redirect('users/login');
     }
     if (!$exercise_id) {
         redirect('exercises/view');
     }
     $this->load->helper(array('time', 'distance', 'date'));
     // Get exercise from user
     $user = new User($this->user_id);
     $exercise = $user->exercise;
     $exercise->where('id', $exercise_id);
     $exercise->get();
     // Get exercise logs
     $exercise_logs = $exercise->exerciselog;
     $exercise_logs->get();
     $logs = array();
     $data = $exercise->getData();
     foreach ($exercise_logs as $log) {
         $logs[$log->id] = array('id' => $log->id, 'date' => date_mysql_std($log->date), 'time' => time_seconds_to_string($log->time), 'distance' => distance_meters_to_miles($log->distance), 'laps' => $log->laps, 'wght' => $log->weight, 'reps' => $log->repetitions, 'sets' => $log->sets);
     }
     $data['exercise'] = $exercise->getData();
     $data['exercise']['logs'] = $logs;
     $data['title'] = $exercise->name;
     $data['content'] = 'exercises/view_one';
     $data['javascript'] = array('datatables/media/js/jquery', 'datatables/media/js/jquery.dataTables', 'jqplot/jquery.jqplot.min', 'jqplot/plugins/jqplot.canvasTextRenderer.min', 'jqplot/plugins/jqplot.canvasAxisLabelRenderer.min', 'jqplot/plugins/jqplot.dateAxisRenderer.min', 'jqplot/plugins/jqplot.cursor.min', 'jqplot/plugins/jqplot.barRenderer.min', 'exercises/view_one', 'exerciselogs/logtable');
     $data['css'] = array('datatables/jquery.dataTables', 'jquery.jqplot.min');
     $this->load->view('master', $data);
 }