middleware('auth'); $this->_service = 'mag'; $this->_module = 'magazine'; $this->_viewname = 'sessionagenda'; $this->_title = 'Session Agenda'; $this->_base_url = '/sessionagenda'; $this->_basemodel = new Sessionagenda; } protected function get_list_buttons() { return [ ['title' => 'Add New', 'link' => $this->_base_url.'/addnew' ], ['title' => 'Back to Sessions', 'link' => '/sessions'] ]; } protected function get_list_data(Request $request) { $data = $this->_basemodel->where('session_id', $request->session()->get('session_id', 0) )->get(); $dd = []; foreach($data->toArray() as $d) { $dd[] = (object)$d; } return $dd; } protected function get_list_fields(){ return [ 'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ], 'title' => ['title' => 'Topic', 'type' => 'text'], 'date' => ['title' => 'Date', 'type' => 'date'], 'time' => ['title' => 'Time', 'type' => 'time'], 'duration' => ['title' => 'Duration', 'type' => 'text'], 'speaker' => ['title' => 'Speaker', 'type' => 'text'], 'status' => ['title' => 'Status', 'type' => 'select'], ]; } protected function get_form_fields($type, $values){ $sess = $this->_request->session()->get('session_id', 0); $sess = Session::find($sess); $sess->dates = json_decode($sess->dates); $dates = []; foreach($sess->dates->date as $date) { $dates[$date] = date("d M Y", strtotime($date)); } $faculties = explode('|', trim($sess->faculty, '|') ); $faculties = Faculty::wherein('id', $faculties)->select("id","name")->orderby('sort_order')->get(); $faculty_dd = ['break' => 'Break' ];; foreach($faculties as $faculty) { $faculty_dd[$faculty->name] = $faculty->name; } //echo '
'; print_r($faculties); exit;
$agends = Sessionagendalib::where('status', 'active')->where('type', $sess->type)->select("id","type","title","duration","speaker")->get();
$agendas = ['break' => ['title' => 'Break'] ];
foreach($agends as $agend) {
$agendas[$agend->id] = $agend->toArray();
}
//echo ''; print_r($agendas); exit;
$fields = [
'topics' => ['title' => 'Select Topic from Bank', 'type' => 'select', 'required' => true, 'values' => $agendas],
'title' => ['title' => 'Topic', 'type' => 'text', 'required' => true ],
'date' => ['title' => 'Date', 'type' => 'select', 'required' => true, 'values' => $dates],
'time' => ['title' => 'Time', 'type' => 'text', 'required' => true],
'duration' => ['title' => 'Duration', 'type' => 'text', 'required' => true ],
'theme' => ['title' => 'Theme (only for Casper Clinic)', 'type' => 'text'],
'speaker' => ['title' => 'Speaker', 'type' => 'multiselect', 'required' => true, 'values' => $faculty_dd ],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
];
return $fields;
}
protected function _beforesave($type, $request) {
$data = $request->except('_token');
$data['session_id'] = $this->_request->session()->get('session_id', 0);
$data['speaker'] = $data['speaker'][0] == 'break' ? [] : $data['speaker'];
$data['speaker'] = implode(' & ', $data['speaker']);
unset($data['topicbank']);
//echo ''; print_r($data); exit;
return $data;
}
protected function _beforeform($type, $values) {
if($type == 'edit') {
$values->speaker = explode(' & ', $values->speaker);
}
return $values;
}
}