Ajaxified product modification tabs
This commit is contained in:
@@ -150,22 +150,32 @@
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::updatePositionAction</default>
|
||||
</route>
|
||||
|
||||
<!-- Related content -->
|
||||
|
||||
<route id="admin.products.related-content.add" path="/admin/products/related-content/add">
|
||||
<route id="admin.products.general.tab" path="/admin/products/general/tab">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::loadGeneralAjaxTabAction</default>
|
||||
</route>
|
||||
|
||||
<!-- Product Related content and accessories -->
|
||||
|
||||
<route id="admin.products.related.tab" path="/admin/products/related/tab">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::loadRelatedAjaxTabAction</default>
|
||||
</route>
|
||||
|
||||
<!-- content -->
|
||||
<route id="admin.products.related-content.add" path="/admin/products/content/add">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::addRelatedContentAction</default>
|
||||
</route>
|
||||
|
||||
<route id="admin.products.related-content.delete" path="/admin/products/related-content/delete">
|
||||
<route id="admin.products.related-content.delete" path="/admin/products/content/delete">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::deleteRelatedContentAction</default>
|
||||
</route>
|
||||
|
||||
<route id="admin.product.available-related-content" path="/admin/product/{productId}/available-related-content/{folderId}.{_format}" methods="GET">
|
||||
<route id="admin.product.available-related-content" path="/admin/product/{productId}/available-content/{folderId}.{_format}" methods="GET">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::getAvailableRelatedContentAction</default>
|
||||
<requirement key="_format">xml|json</requirement>
|
||||
</route>
|
||||
|
||||
<!-- Product accessories -->
|
||||
<!-- accessories -->
|
||||
|
||||
<route id="admin.products.accessories.add" path="/admin/products/accessory/add">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::addAccessoryAction</default>
|
||||
@@ -180,11 +190,16 @@
|
||||
<requirement key="_format">xml|json</requirement>
|
||||
</route>
|
||||
|
||||
<route id="admin.products.update-accessory-position" path="/admin/products/update-accessory-position">
|
||||
<route id="admin.product.update-accessory-position" path="/admin/product/update-accessory-position">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::updateAccessoryPositionAction</default>
|
||||
</route>
|
||||
|
||||
<!--Features and attributes -->
|
||||
<!--Product Features and attributes -->
|
||||
|
||||
<route id="admin.products.attributes.tab" path="/admin/products/attributes/tab">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::loadAttributesAjaxTabAction</default>
|
||||
</route>
|
||||
|
||||
<route id="admin.products.set-product-template" path="/admin/product/{productId}/set-product-template">
|
||||
<default key="_controller">Thelia\Controller\Admin\ProductController::setProductTemplateAction</default>
|
||||
</route>
|
||||
@@ -195,6 +210,7 @@
|
||||
|
||||
|
||||
<!-- Folder routes management -->
|
||||
|
||||
<route id="admin.folders.default" path="/admin/folders">
|
||||
<default key="_controller">Thelia\Controller\Admin\FolderController::indexAction</default>
|
||||
</route>
|
||||
|
||||
@@ -77,6 +77,61 @@ class ProductController extends AbstractCrudController
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* General ajax tab loading
|
||||
*/
|
||||
public function loadGeneralAjaxTabAction() {
|
||||
|
||||
// Load the object
|
||||
$object = $this->getExistingObject();
|
||||
|
||||
if ($object != null) {
|
||||
|
||||
// Hydrate the form abd pass it to the parser
|
||||
$changeForm = $this->hydrateObjectForm($object);
|
||||
|
||||
// Pass it to the parser
|
||||
$this->getParserContext()->addForm($changeForm);
|
||||
|
||||
return $this->render(
|
||||
'ajax/product-general-tab',
|
||||
array(
|
||||
'product_id' => $this->getRequest()->get('product_id', 0),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$this->redirectToListTemplate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Attributes ajax tab loading
|
||||
*/
|
||||
public function loadAttributesAjaxTabAction() {
|
||||
|
||||
return $this->render(
|
||||
'ajax/product-attributes-tab',
|
||||
array(
|
||||
'product_id' => $this->getRequest()->get('product_id', 0),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Related information ajax tab loading
|
||||
*/
|
||||
public function loadRelatedAjaxTabAction() {
|
||||
|
||||
return $this->render(
|
||||
'ajax/product-related-tab',
|
||||
array(
|
||||
'product_id' => $this->getRequest()->get('product_id', 0),
|
||||
'folder_id' => $this->getRequest()->get('folder_id', 0),
|
||||
'accessory_category_id'=> $this->getRequest()->get('accessory_category_id', 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
protected function getCreationForm()
|
||||
{
|
||||
return new ProductCreationForm($this->getRequest());
|
||||
@@ -468,7 +523,7 @@ class ProductController extends AbstractCrudController
|
||||
|
||||
$position = $this->getRequest()->get('position', null);
|
||||
|
||||
$event = new UpdatePositionEvent($mode, $position);
|
||||
$event = new UpdatePositionEvent($this->getRequest()->get('accessory_id', null), $mode, $position);
|
||||
|
||||
$this->dispatch(TheliaEvents::PRODUCT_UPDATE_ACCESSORY_POSITION, $event);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user