Ejemplo n.º 1
0
 public function editAction()
 {
     $form = new ResourceForm($this->getServiceLocator());
     $form->setAttribute('id', 'edit-item-set');
     $id = $this->params('id');
     $response = $this->api()->read('item_sets', $id);
     $itemSet = $response->getContent();
     $view = new ViewModel();
     $view->setVariable('form', $form);
     $view->setVariable('itemSet', $itemSet);
     $view->setVariable('confirmForm', new ConfirmForm($this->getServiceLocator(), null, ['button_value' => $this->translate('Confirm Delete')]));
     if ($this->getRequest()->isPost()) {
         $data = $this->params()->fromPost();
         $form->setData($data);
         if ($form->isValid()) {
             $response = $this->api()->update('item_sets', $id, $data);
             if ($response->isError()) {
                 $form->setMessages($response->getErrors());
             } else {
                 $this->messenger()->addSuccess('Item Set Updated.');
                 return $this->redirect()->toUrl($response->getContent()->url());
             }
         } else {
             $this->messenger()->addError('There was an error during validation');
         }
     }
     return $view;
 }
Ejemplo n.º 2
0
 public function buildForm()
 {
     parent::buildForm();
     $this->setAttribute('enctype', 'multipart/form-data');
     $translator = $this->getTranslator();
     $serviceLocator = $this->getServiceLocator();
     $auth = $serviceLocator->get('Omeka\\AuthenticationService');
     $itemSetSelect = new ResourceSelect($serviceLocator);
     $itemSetSelect->setName('o:item_set')->setAttribute('required', false)->setAttribute('multiple', true)->setAttribute('id', 'select-item-set')->setAttribute('data-placeholder', $translator->translate('Select Item Sets...'))->setLabel($translator->translate('Item Sets'))->setOption('info', $translator->translate('Select Items Sets for this resource.'))->setResourceValueOptions('item_sets', [], function ($itemSet, $serviceLocator) {
         return $itemSet->displayTitle();
     });
     if (!$itemSetSelect->getValueOptions()) {
         $itemSetSelect->setAttribute('disabled', true);
         $itemSetSelect->setAttribute('data-placeholder', $translator->translate('No item sets exist'));
     }
     $this->add($itemSetSelect);
     $inputFilter = $this->getInputFilter();
     $inputFilter->add(['name' => 'o:item_set', 'required' => false]);
 }