public function indexAction()
 {
     $sl = $this->getServiceLocator();
     $filters = $sl->get('FormElementManager')->get('\\Application\\Form\\LeadFilterForm');
     $page = (int) $this->params()->fromRoute('page') ?: 1;
     $order = $this->params()->fromRoute('order') ?: 'desc';
     $rorder = $order == 'desc' ? 'asc' : 'desc';
     $sort = $this->params()->fromRoute('sort') ?: 'lead.id';
     $action = $this->params()->fromRoute('action') ?: 'index';
     $fields = array();
     $fields['form.source'] = 'Referrer';
     $fields['timecreated'] = 'Created';
     $fields['submitted'] = 'Submitted';
     $fields['lastresponse'] = 'API Response';
     $request = $this->getRequest();
     $data = $request->getQuery();
     $fdata = array();
     if ($data) {
         $filters->setData($data);
         if (!$filters->isValid()) {
             $message = array("Invalid Search Paramters.");
             $this->errorResponse->addMessages(null, $message, $filters->getMessages());
             $page = 1;
             $order = 'desc';
             $rorder = $order == 'desc' ? 'asc' : 'desc';
             $sort = 'lead.id';
         } else {
             $fdata = $filters->getData();
         }
     }
     // grab the paginator from the LeadTable
     $paginator = $this->getLeadMapper()->fetchAll(true, $sort, $order, $fdata);
     // set the current page to what has been passed in query string, or to 1
     // if none set
     $paginator->setCurrentPageNumber($page);
     // set the number of items per page to 10
     $paginator->setItemCountPerPage(10);
     // Batch Form
     $batchForm = new LeadFilterBatchForm('leadbatchform');
     if (count($paginator) == 0) {
         $message = "No Results.";
         $this->errorResponse->addMessage($message, "info");
     }
     foreach ($paginator as $lead) {
         $cbx = new \Zend\Form\Element\Checkbox("sel[" . $lead->getId() . "]");
         if ($lead->getSubmitted()) {
             $cbx->setAttribute('disabled', 'disabled');
         }
         $batchForm->add($cbx);
     }
     return new ViewModel(array('leads' => $paginator, 'page' => $page, 'order' => $order, 'sort' => $sort, 'rorder' => $rorder, 'filters' => $filters, 'fields' => $fields, 'batchForm' => $batchForm, 'query' => $data->toArray()));
 }