Rapport-Laravel/app/Http/Controllers/TeamController.php

88 lines
3.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use DB;
class TeamController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->_service = 'ums';
$this->_module = 'team';
$this->_viewname = 'team';
$this->_title = 'Teams';
$this->_base_url = '/team';
}
protected function get_list_fields(){
return [
'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete', 'players' => ['icon' => 'account-multiple', 'querystring' => 'id={ID}'] ] ],
'name' => ['title' => 'Team Name', 'type' => 'text'],
'status' => ['title' => 'Status', 'type' => 'select'],
];
}
protected function get_form_fields($type, $values){
// $users = $this->getlambda('get', 'ums', 'users', 'dropdown');
// $users_dd = [];
// foreach($users->data->items as $user){
// $users_dd[$user->id] = $user->firstname . ' ' . $user->lastname . ' (' . $user->employee_code . ')';
// }
return [
'name' => ['title' => 'Team Name', 'type' => 'text', 'required' => true],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
'description' => ['title' => 'Description', 'type' => 'textarea', 'required' => true],
'slogal' => ['title' => 'Slogal', 'type' => 'textarea', 'required' => true],
'image' => ['title' => 'Team Image or Icon', 'type' => 'image', 'required' => true],
];
}
protected function _beforesave($type, $request) {
$data = $request->except('_token');
if( $request->file('image') ) {
$data['image'] = $this->_uploadMedia($request, 'image', 'teams');
}
return $data;
}
public function players(Request $request) {
$id = $request->input('id');
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_one', ['id' => $id, 'players' => true]);
$players = [];
foreach($response->data->players as $player) {
$players[$player->parent_id][] = $player;
}
$users = $this->getlambda('get', 'ums', 'users', 'dropdown');
$users_dd = [];
foreach($users->data->items as $user){
$users_dd[$user->id] = $user->firstname . ' ' . $user->lastname . ' (' . $user->employee_code . ')';
}
//echo '<pre>'; print_r($players); exit;
return $this->view('players')->with([
'title' => 'Team Players for Team: '.$response->data->item->name,
'base_url' => $this->_base_url,
'players' => $players,
'team' => $response->data->item,
'users' => $users_dd,
]);
}
public function postaddchild(Request $request) {
$data = $request->except('_token');
if($data['id'] != '') {
$response = LambdaRequest::signedrequest('post', $this->_service, 'team/player_update', $data);
} else {
$response = LambdaRequest::signedrequest('post', $this->_service, 'team/player_create', $data);
}
if($response->statusCode == 200 && $response->status == "success") {
return redirect('/team/players?id='.$data['team_id'])->withMessage('Successfully Saved !!!');
} else {
return \Redirect::back()->withMessage('Some Error occured!');
}
}
}