public function action_edit() { if ($this->request->method() === 'POST' && $this->request->post()) { $event = ORM::factory('event', $this->request->post('event_id')); $validator = $event->validator($this->request->post()); $lecture = ORM::factory('lecture', $this->request->post('lecture_id')); if ($validator->check()) { $from = strtotime($this->request->post('date')) + $this->request->post('from') * 60; $to = strtotime($this->request->post('date')) + $this->request->post('to') * 60; $event->room_id = $this->request->post('room_id'); $event->eventstart = $from; $event->eventend = $to; $event->cancel = (int) $this->request->post('cancel'); $event->save(); $lecture->start_date = $from; $lecture->end_date = $to; $lecture->save(); if ($this->request->post('cancel')) { $feed = new Feed_Lecture(); $feed->set_action('canceled'); $feed->set_course_id($event->course_id); $feed->set_respective_id($event->id); $feed->set_actor_id(Auth::instance()->get_user()->id); $feed->save(); $feed->subscribe_users(); } $json = array('success' => 1, 'message' => array('Event is edited successfully')); } else { $json = array('success' => 0, 'errors' => array_values($validator->errors('exam'))); } echo json_encode($json); exit; } $id = $this->request->param('id'); $lecture_id = $this->request->param('lectId'); $event = ORM::factory('event', $id); $form = new Stickyform('', array(), array()); $form->default_data = array('date' => '', 'room_id' => '', 'from' => '', 'to' => '', 'cancel' => '1'); $conflict_event = $event->get_conflict_event(); $event_details = array(); if ($conflict_event) { $class = 'Event_' . $conflict_event->eventtype; $dynamic_object = new $class($conflict_event->id); $event_details = $dynamic_object->get_event_details(); } $form->saved_data = array('date' => date('Y-m-d', $event->eventstart), 'cancel' => $event->cancel); $form->append('Date', 'date', 'text', array('attributes' => array('class' => 'date'))); $form->append('Room', 'room_id', 'select', array('options' => array())); $form->append('From', 'from', 'hidden', array('attributes' => array('id' => 'slider-range_from'))); $form->append('To', 'to', 'hidden', array('attributes' => array('id' => 'slider-range_to'))); $form->append('Cancel', 'cancel', 'checkbox', array('attributes' => array('value' => 1))); $form->process(); $slider = array('start' => ($event->eventstart - strtotime(date('Y-m-d', $event->eventstart))) / 60, 'end' => ($event->eventend - strtotime(date('Y-m-d', $event->eventend))) / 60); $view = View::factory('event/edit')->bind('event', $event)->bind('form', $form)->bind('slider', $slider)->bind('conflict_event', $conflict_event)->bind('event_details', $event_details)->bind('lecture_id', $lecture_id); echo json_encode(array('success' => 1, 'html' => $view->render())); exit; }
public function action_add() { $submitted = FALSE; if ($this->request->method() === 'POST' && $this->request->post()) { if (Arr::get($this->request->post(), 'save') !== null) { $data = Stickyform::ungroup_params($this->request->post()); $submitted = true; if ($this->validate($data)) { if ($this->request->post('type') == 'once') { $data['when'] = ''; $data['start_date'] = strtotime($data['once_date']) + $data['once_from'] * 60; $data['end_date'] = strtotime($data['once_date']) + $data['once_to'] * 60; } else { $date_range = $this->request->post('repeat'); $data['start_date'] = strtotime($date_range['from']); $data['end_date'] = strtotime($date_range['to']); $days = array(); foreach ($this->request->post('days') as $day => $value) { $time = $this->request->post(strtolower($day)); $days[$day] = $time['from'] . ':' . $time['to']; } $data['when'] = serialize($days); } $lecture = ORM::factory('lecture'); $lecture->values($data); $lecture->save(); $feed = new Feed_Lecture(); $feed->set_action('add'); $feed->set_course_id($this->request->post('course_id')); $feed->set_respective_id($lecture->id); $feed->set_actor_id(Auth::instance()->get_user()->id); $feed->streams(array('course_id' => (int) $this->request->post('course_id'))); $feed->save(); $this->remove_events($lecture); $this->create_events(array_merge($this->request->post(), $data), $lecture); Request::current()->redirect('lecture'); exit; } } } $form = $this->form('lecture/add', $submitted); $days = $this->request->post('days') ? $this->request->post('days') : array(); $slider = array('once_slider' => array('from' => 420, 'to' => 660), 'monday_slider' => $this->request->post('monday') ? $this->request->post('monday') : array('from' => 420, 'to' => 660), 'tuesday_slider' => $this->request->post('tuesday') ? $this->request->post('tuesday') : array('from' => 420, 'to' => 660), 'wednesday_slider' => $this->request->post('wednesday') ? $this->request->post('wednesday') : array('from' => 420, 'to' => 660), 'thursday_slider' => $this->request->post('thursday') ? $this->request->post('thursday') : array('from' => 420, 'to' => 660), 'friday_slider' => $this->request->post('friday') ? $this->request->post('friday') : array('from' => 420, 'to' => 660), 'saturday_slider' => $this->request->post('saturday') ? $this->request->post('saturday') : array('from' => 420, 'to' => 660), 'sunday_slider' => $this->request->post('sunday') ? $this->request->post('sunday') : array('from' => 420, 'to' => 660)); $view = View::factory('lecture/form')->bind('form', $form)->bind('errors', $this->_errors)->bind('slider', $slider)->bind('days', $days); Breadcrumbs::add(array('Lectures', Url::site('lecture'))); Breadcrumbs::add(array('Create', Url::site('lecture/add'))); $this->content = $view; }