Example #1
0
 /**
  * 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");
 }