public function showByCapabilityAction()
 {
     if ($this->getRequest()->getParam('download', false)) {
         $this->getResponse()->setHeader('Content-disposition', 'attachment; filename=json.txt');
     }
     $inputFilter = $this->_helper->FilterLoader();
     $params = Surfnet_Search_Parameters::create()->setLimit($inputFilter->results)->setOffset($inputFilter->startIndex)->setSortByField($inputFilter->sort)->setSortDirection($inputFilter->dir);
     $service = new Portal_Service_GadgetDefinition();
     $results = $service->searchCountByCapabililty($params);
     $this->view->gridConfig = $this->_helper->gridSetup($inputFilter);
     $this->view->ResultSet = $results->getResults();
     $this->view->startIndex = $results->getParameters()->getOffset();
     $this->view->recordsReturned = $results->getResultCount();
     $this->view->totalRecords = $results->getTotalCount();
 }
 public function save($data, $overwrite = false)
 {
     if (isset($data['id']) && !$overwrite) {
         $id = (int) $data['id'];
         $gadgetDefinitionService = new Portal_Service_GadgetDefinition();
         $gadgetDefinition = $gadgetDefinitionService->fetchById($id);
     } else {
         $gadgetDefinition = new Portal_Model_GadgetDefinition();
     }
     $gadgetDefinition->populate($data);
     $form = new Portal_Form_GadgetDefinition();
     if (!$form->isValid($gadgetDefinition->toArray())) {
         $formErrors = $form->getErrors();
         $modelErrors = array();
         foreach ($formErrors as $fieldName => $fieldErrors) {
             foreach ($fieldErrors as $fieldError) {
                 switch ($fieldError) {
                     case 'isEmpty':
                         $error = 'Field is obligatory, but no input given';
                         break;
                     default:
                         $error = $fieldError;
                 }
                 if (!isset($modelErrors[$fieldName])) {
                     $modelErrors[$fieldName] = array();
                 }
                 $modelErrors[$fieldName][] = $error;
             }
         }
         $gadgetDefinition->errors = $modelErrors;
         return $gadgetDefinition;
     }
     $mapper = new Portal_Model_Mapper_GadgetDefinition(new Portal_Model_DbTable_GadgetDefinition());
     $mapper->save($gadgetDefinition);
     return $gadgetDefinition;
 }
 public function promoteAction()
 {
     $service = new Portal_Service_GadgetDefinition();
     $gadgetDefinition = $service->promoteCustomToNonCustom((int) $this->_getParam('id'));
     if (empty($gadgetDefinition->errors)) {
         $this->_redirect($this->view->url(array('action' => 'list-custom', 'id' => null)));
     } else {
         $this->view->gadgetDefinition = $gadgetDefinition;
     }
 }