Ejemplo n.º 1
0
 /**
  * Display a listing of requests.
  *
  * @return Response
  */
 public function index()
 {
     //get user role
     $user = Sentry::getUser();
     $role = $user->role;
     Input::get('reqCode') ? $reqCode = Input::get('reqCode') : ($reqCode = '');
     Input::get('roleId') ? $roleId = Input::get('roleId') : ($roleId = $role->id);
     Input::get('type') ? $type = Input::get('type') : ($type = 'license');
     if ($role->role != 'All' && $role->id != $roleId) {
         return Redirect::to('/')->with('error', 'Cannot access that EC');
     }
     if ($role->role == 'All') {
         if (!$reqCode) {
             $reqCode = 1;
         }
         //ASAP
         if ($roleId == 1) {
             $roleId = '';
         }
     }
     //get the requests
     $requests = Request::retrieve($roleId, $reqCode, $type);
     //ajax request so return json
     if ($this->httpRequest->ajax()) {
         //make table headers
         $header = array(Lang::get('request.requester'), Lang::get('general.unit'), Lang::get('general.ec'), Lang::get('request.for'), Lang::get('licenses.general.type'), Lang::get('request.dateReq'), Lang::get('general.actions'));
         $return = array();
         foreach ($requests as $key => $request) {
             $return[$key] = new \stdClass();
             $return[$key]->id = $request->id;
             $return[$key]->requester = $request->owner->first_name . " " . $request->owner->last_name;
             $return[$key]->unit = $request->unit->name;
             $return[$key]->role = $request->roles->role;
             $request->account ? $return[$key]->name = $request->account->first_name . " " . $request->account->last_name : ($return[$key]->name = '');
             if ($type == 'license') {
                 $return[$key]->lcnsTypes = $request->licenseTypes;
             } elseif ($type == 'checkin') {
                 $return[$key]->lcnsName = $request->licenseSeat->license->name;
             }
             $return[$key]->created_at = (string) $request->created_at;
             $return[$key]->actions = '';
             //delete
             if ($user->role->id == $requests[$key]->role_id || in_array('Authorizers', $user->group())) {
                 $return[$key]->actions .= "<a href=" . URL::to('request/' . $requests[$key]->id) . " class='delete-request'><i class='fa fa-trash icon-white'></i></a>";
             } elseif (in_array('Admin', $user->group())) {
                 $return[$key]->actions .= "<a href=" . URL::to('request/' . $requests[$key]->id) . " class='delete-request'><i class='fa fa-trash icon-white'></i></a>";
             }
             //edit
             if (($user->hasAccess('authorize') || $user->role->id == $requests[$key]->role_id) && empty($request->request_code)) {
                 $return[$key]->actions .= "<a href=" . URL::to('request/' . $requests[$key]->id . '/edit') . "><i class='fa fa-pencil icon-white'></i></a>";
             }
             //approve
             if (in_array('Authorizers', $user->group()) && empty($request->request_code) || in_array('Admin', $user->group()) && $request->request_code == 1) {
                 $return[$key]->actions .= "<a href=" . URL::to('request/' . $request->id . '/approve') . "><i class='fa fa-check icon-blue'></i></a>";
             }
         }
         if (!$return) {
             $return = "No requests found";
         }
         header('Content-type: application/json');
         //return Response::json(array('requests'=>$requests, 'isAdmin' => $user->hasAccess('admin'), 'roleId' => $user->role->id), 200);
         echo json_encode(array('requests' => $return, 'header' => $header, 'isAdmin' => $user->hasAccess('admin'), 'roleId' => $user->role->id));
     } else {
         //html request
         return View::make('backend.requests.index')->with('requests', $requests)->with('user', $user)->with('roleId', $roleId)->with('type', $type);
     }
 }