Exemplo n.º 1
0
 /**
  * Prepare form for render
  *
  * @return void
  */
 protected function _prepareLayout()
 {
     parent::_prepareLayout();
     /** @var \Magento\Framework\Data\Form $form */
     $form = $this->_formFactory->create();
     $demoId = $this->_coreRegistry->registry('current_demo_id');
     /** @var \Genmato\Sample\Model\DemoFactory $demoData */
     if ($demoId === null) {
         $demoData = $this->demoDataFactory->create();
     } else {
         $demoData = $this->demoDataFactory->create()->load($demoId);
     }
     $yesNo = [];
     $yesNo[0] = 'No';
     $yesNo[1] = 'Yes';
     $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Basic Information')]);
     $fieldset->addField('title', 'text', ['name' => 'title', 'label' => __('Title'), 'title' => __('Title'), 'required' => true]);
     $fieldset->addField('is_active', 'select', ['name' => 'is_active', 'label' => __('Active'), 'title' => __('Active'), 'class' => 'required-entry', 'required' => true, 'values' => $yesNo]);
     $fieldset->addField('is_visible', 'select', ['name' => 'is_visible', 'label' => __('Visible'), 'title' => __('Visible'), 'class' => 'required-entry', 'required' => true, 'values' => $yesNo]);
     if ($demoData->getId() !== null) {
         // If edit add id
         $form->addField('demo_id', 'hidden', ['name' => 'demo_id', 'value' => $demoData->getId()]);
     }
     if ($this->_backendSession->getDemoData()) {
         $form->addValues($this->_backendSession->getDemoData());
         $this->_backendSession->setDemoData(null);
     } else {
         $form->addValues(['id' => $demoData->getId(), 'title' => $demoData->getTitle(), 'is_active' => $demoData->getIsActive(), 'is_visible' => $demoData->getIsVisible()]);
     }
     $form->setUseContainer(true);
     $form->setId('edit_form');
     $form->setAction($this->getUrl('*/*/save'));
     $form->setMethod('post');
     $this->setForm($form);
 }
Exemplo n.º 2
0
 /**
  * Add record to demoList when new order is placed
  *
  * @param EventObserver $observer
  * @return void
  */
 public function execute(EventObserver $observer)
 {
     /** @var \Magento\Sales\Model\Order $order */
     $order = $observer->getEvent()->getOrder();
     $demoList = $this->demoFactory->create();
     $demoList->setTitle(__('New order (%1) placed!', $order->getIncrementId()));
     try {
         $demoList->save();
     } catch (\Exception $ex) {
         // Process error here....
     }
 }
Exemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function getList(SearchCriteriaInterface $searchCriteria)
 {
     $searchResults = $this->searchResultsFactory->create();
     $searchResults->setSearchCriteria($searchCriteria);
     /** @var Collection $collection */
     $collection = $this->demoFactory->create()->getCollection();
     foreach ($searchCriteria->getFilterGroups() as $filterGroup) {
         foreach ($filterGroup->getFilters() as $filter) {
             $condition = $filter->getConditionType() ?: 'eq';
             $collection->addFieldToFilter($filter->getField(), [$condition => $filter->getValue()]);
         }
     }
     $searchResults->setTotalCount($collection->getSize());
     $sortOrders = $searchCriteria->getSortOrders();
     if ($sortOrders) {
         /** @var SortOrder $sortOrder */
         foreach ($sortOrders as $sortOrder) {
             $collection->addOrder($sortOrder->getField(), $sortOrder->getDirection() == SortOrder::SORT_ASC ? 'ASC' : 'DESC');
         }
     }
     $collection->setCurPage($searchCriteria->getCurrentPage());
     $collection->setPageSize($searchCriteria->getPageSize());
     /** @var DemoInterface[] $demos */
     $demos = [];
     /** @var DemoModel $demo */
     foreach ($collection as $demo) {
         /** @var DemoInterface $demoDataObject */
         $demoDataObject = $this->demoDataFactory->create()->setId($demo->getId())->setTitle($demo->getTitle())->setCreationTime($demo->getCreationTime())->setUpdateTime($demo->getUpdateTime())->setIsVisible($demo->getIsVisible())->setIsActive($demo->getIsActive());
         $demos[] = $demoDataObject;
     }
     $searchResults->setTotalCount($collection->getSize());
     return $searchResults->setItems($demos);
 }
Exemplo n.º 4
0
 /**
  * Save DemoList item.
  *
  * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
  */
 public function execute()
 {
     $id = $this->getRequest()->getParam('demo_id');
     $resultRedirect = $this->resultRedirectFactory->create();
     try {
         if ($id !== null) {
             $demoData = $this->demoFactory->create()->load((int) $id);
         } else {
             $demoData = $this->demoFactory->create();
         }
         $data = $this->getRequest()->getParams();
         $demoData->setData($data)->save();
         $this->messageManager->addSuccess(__('Saved DemoList item.'));
         $resultRedirect->setPath('sample/demolist');
     } catch (\Exception $e) {
         $this->messageManager->addError($e->getMessage());
         $this->_getSession()->setDemoData($data);
         $resultRedirect->setPath('sample/demolist/edit', ['demo_id' => $id]);
     }
     return $resultRedirect;
 }
Exemplo n.º 5
0
 /**
  * Create demo
  *
  * @return Demo
  */
 public function createDemo()
 {
     return $this->demoFactory->create();
 }