| Current Path : /var/www/html/app/code/FlipsDigital/TextbookList/Controller/Adminhtml/TextbookList/ |
| Current File : /var/www/html/app/code/FlipsDigital/TextbookList/Controller/Adminhtml/TextbookList/InlineEdit.php |
<?php
/**
* InlineEdit.php
*
* @copyright Copyright © 2021 FlipsDigital. All rights reserved.
* @author calvin.so@flipsdigital.com
*/
namespace FlipsDigital\TextbookList\Controller\Adminhtml\TextbookList;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\Controller\Result\JsonFactory;
use FlipsDigital\TextbookList\Model\ResourceModel\TextbookList\Collection;
/**
* Grid inline edit controller
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class InlineEdit extends Action
{
/** @var JsonFactory $jsonFactory */
protected $jsonFactory;
/**
* @var Collection
*/
protected $objectCollection;
/**
* @param Context $context
* @param Collection $objectCollection
* @param JsonFactory $jsonFactory
*/
public function __construct(
Context $context,
Collection $objectCollection,
JsonFactory $jsonFactory
) {
parent::__construct($context);
$this->jsonFactory = $jsonFactory;
$this->objectCollection = $objectCollection;
}
/**
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->jsonFactory->create();
$error = false;
$messages = [];
$postItems = $this->getRequest()->getParam('items', []);
if (!($this->getRequest()->getParam('isAjax') && count($postItems))) {
return $resultJson->setData([
'messages' => [__('Please correct the data sent.')],
'error' => true,
]);
}
try {
$this->objectCollection
->setStoreId($this->getRequest()->getParam('store', 0))
->addFieldToFilter('entity_id', ['in' => array_keys($postItems)])
->walk('saveCollection', [$postItems]);
} catch (\Exception $e) {
$messages[] = __('There was an error saving the data: ') . $e->getMessage();
$error = true;
}
return $resultJson->setData([
'messages' => $messages,
'error' => $error
]);
}
}