Файловый менеджер - Редактировать - /home/clickysoft/public_html/standup.clickysoft.net/app/Http/Controllers/Admin/ProjectController.php
Назад
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyProjectRequest; use App\Http\Requests\StoreProjectRequest; use App\Http\Requests\UpdateProjectRequest; use App\Models\Project; use App\Models\Standup; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; use Carbon\Carbon; class ProjectController extends Controller { public function index(Request $request) { abort_if(Gate::denies('project_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Project::query()->select(sprintf('%s.*', (new Project)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'project_show'; $editGate = 'project_edit'; $deleteGate = 'project_delete'; $crudRoutePart = 'projects'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->editColumn('project_name', function ($row) { return $row->project_name ? $row->project_name : ''; }); $table->editColumn('client_name', function ($row) { return $row->client_name ? $row->client_name : ''; }); $table->rawColumns(['actions', 'placeholder']); return $table->make(true); } return view('admin.projects.index'); } public function create() { abort_if(Gate::denies('project_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.projects.create'); } public function store(StoreProjectRequest $request) { dd($request->all()); $project = Project::create($request->all()); return redirect()->route('admin.projects.index'); } public function edit(Project $project) { abort_if(Gate::denies('project_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.projects.edit', compact('project')); } public function update(UpdateProjectRequest $request, Project $project) { $project->update($request->all()); return redirect()->route('admin.projects.index'); } public function show(Project $project) { abort_if(Gate::denies('project_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.projects.show', compact('project')); } public function destroy(Project $project) { abort_if(Gate::denies('project_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $project->delete(); return back(); } public function massDestroy(MassDestroyProjectRequest $request) { $projects = Project::find(request('ids')); foreach ($projects as $project) { $project->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function import_from_worksnap() { abort_if(Gate::denies('import_worksnap_projects'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'https://api.worksnaps.com:443/api/projects.xml', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ 'Authorization: Basic YktGbXc0MG96dzM5UHY3QzJVaENZVGxPVWFFelZuOWl6dlpvYTdmSTo=', 'Accept: application/xml', ], ]); $response = curl_exec($curl); if (curl_errno($curl)) { $error_msg = curl_error($curl); return redirect()->back()->withErrors("Could not fetch projects from Worksnap - ".$error_msg); } curl_close($curl); $xml = json_encode(simplexml_load_string($response)); $projects_json = json_decode($xml, true); foreach($projects_json["project"] as $project) { // dd($project); Project::firstOrCreate([ "worksnap_id" => (int)$project["id"] ], [ "project_name" => $project["name"], "description" => is_string($project["description"]) ? $project["description"] : "", // "date_arrive" => Carbon::parse(new \DateTime)->format(config('panel.date_format')), "worksnap_id" => (int)$project["id"], ]); } return redirect()->back()->with("message", "Projects have been imported."); } public function project_timeline($project_id = null) { abort_if(Gate::denies('project_timeline_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $projects = Project::all(); $projectTimelines = []; $date = request()->date; if($project_id) { $projectTimelines = Standup::with(['user', 'project'])->where('project_id', $project_id); if(!empty($date)) { $projectTimelines = $projectTimelines->where("standup_date", $date); } $projectTimelines = $projectTimelines->orderBy("id", "DESC")->get(); } return view('admin.projects.timeline', compact('projects', 'projectTimelines', 'project_id', 'date')); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка