/** * Process datatables ajax request. * * @return \Illuminate\Http\JsonResponse */ public function search() { $netblocks = Netblock::select('netblocks.*', 'contacts.name as contacts_name')->leftJoin('contacts', 'contacts.id', '=', 'netblocks.contact_id'); return Datatables::of($netblocks)->addColumn('actions', function ($netblock) { $actions = Form::open(['route' => ['admin.netblocks.destroy', $netblock->id], 'method' => 'DELETE', 'class' => 'form-inline']); $actions .= ' <a href="netblocks/' . $netblock->id . '" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-eye-open"></span> ' . trans('misc.button.show') . '</a> '; $actions .= ' <a href="netblocks/' . $netblock->id . '/edit" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-edit"></span> ' . trans('misc.button.edit') . '</a> '; $actions .= Form::button('<span class="glyphicon glyphicon-remove"></span> ' . trans('misc.button.delete'), ['type' => 'submit', 'class' => 'btn btn-danger btn-xs']); $actions .= Form::close(); return $actions; })->make(true); }
/** * Export listing to CSV format. * * @param string $format * * @return \Illuminate\Http\Response */ public function export($format) { $auth_account = $this->auth_user->account; if ($auth_account->isSystemAccount()) { $netblocks = Netblock::all(); } else { $netblocks = Netblock::select('netblocks.*')->leftJoin('contacts', 'contacts.id', '=', 'netblocks.contact_id')->leftJoin('accounts', 'accounts.id', '=', 'contacts.account_id')->where('accounts.id', '=', $auth_account->id); } if ($format === 'csv') { $columns = ['contact' => 'Contact', 'enabled' => 'Status', 'first_ip' => 'First IP', 'last_ip' => 'Last IP']; $output = '"' . implode('", "', $columns) . '"' . PHP_EOL; foreach ($netblocks as $netblock) { $row = [$netblock->contact->name . ' (' . $netblock->contact->reference . ')', $netblock['first_ip'], $netblock['last_ip'], $netblock['enabled'] ? 'Enabled' : 'Disabled']; $output .= '"' . implode('", "', $row) . '"' . PHP_EOL; } return response(substr($output, 0, -1), 200)->header('Content-Type', 'text/csv')->header('Content-Disposition', 'attachment; filename="Netblocks.csv"'); } return Redirect::route('admin.contacts.index')->with('message', "The requested format {$format} is not available for exports"); }