99 lines
4.2 KiB
PHP
99 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\LambdaRequest;
|
|
use App\Models\Sessionagenda;
|
|
use App\Models\Session;
|
|
use App\Models\Sessionagendalib;
|
|
use App\Models\Faculty;
|
|
use DB;
|
|
class SessionagendaController extends LocalController
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->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 '<pre>'; 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 '<pre>'; 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 '<pre>'; print_r($data); exit;
|
|
return $data;
|
|
}
|
|
protected function _beforeform($type, $values) {
|
|
if($type == 'edit') {
|
|
$values->speaker = explode(' & ', $values->speaker);
|
|
}
|
|
return $values;
|
|
}
|
|
}
|