Add pagination to the product list (backOffice)

This commit is contained in:
Guillaume Barral
2014-06-03 12:35:52 +02:00
parent 6137fb8893
commit eb895bc544
5 changed files with 39 additions and 25 deletions

View File

@@ -169,7 +169,8 @@ class CategoryController extends AbstractSeoCrudController
return array(
'category_id' => $this->getRequest()->get('category_id', 0),
'folder_id' => $this->getRequest()->get('folder_id', 0),
'current_tab' => $this->getRequest()->get('current_tab', 'general')
'current_tab' => $this->getRequest()->get('current_tab', 'general'),
'page' => $this->getRequest()->get('page', 1)
);
}
@@ -182,14 +183,17 @@ class CategoryController extends AbstractSeoCrudController
array(
'category_order' => $currentOrder,
'product_order' => $product_order,
'category_id' => $this->getRequest()->get('category_id', 0)
'category_id' => $this->getRequest()->get('category_id', 0),
'page' => $this->getRequest()->get('page', 1)
));
}
protected function redirectToListTemplate()
{
$category_id = $this->getRequest()->get('category_id', 0);
$this->redirectToListTemplateWithId($category_id);
$this->redirectToRoute('admin.categories', array(
'category_id' => $this->getRequest()->get('category_id', 0),
'page' => $this->getRequest()->get('page', 1))
);
}
protected function redirectToListTemplateWithId($category_id)

View File

@@ -361,7 +361,8 @@ class ProductController extends AbstractSeoCrudController
'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),
'current_tab' => $this->getRequest()->get('current_tab', 'general')
'current_tab' => $this->getRequest()->get('current_tab', 'general'),
'page' => $this->getRequest()->get('page', 1)
);
}
@@ -386,7 +387,8 @@ class ProductController extends AbstractSeoCrudController
return $this->render('categories',
array(
'product_order' => $currentOrder,
'category_id' => $this->getCategoryId()
'category_id' => $this->getCategoryId(),
'page' => $this->getRequest()->get('page', 1)
));
}
@@ -394,7 +396,10 @@ class ProductController extends AbstractSeoCrudController
{
$this->redirectToRoute(
'admin.products.default',
array('category_id' => $this->getCategoryId())
array(
'category_id' => $this->getCategoryId(),
'page' => $this->getRequest()->get('page', 1)
)
);
}
@@ -438,18 +443,6 @@ class ProductController extends AbstractSeoCrudController
);
}
protected function performAdditionalUpdateAction($updateEvent)
{
if ($this->getRequest()->get('save_mode') != 'stay') {
// Redirect to parent product list
$this->redirectToRoute(
'admin.categories.default',
array('category_id' => $this->getCategoryId())
);
}
}
protected function performAdditionalUpdatePositionAction($positionEvent)
{
// Redirect to parent product list

View File

@@ -270,20 +270,20 @@
</thead>
<tbody>
{loop name="product_list" type="product" visible="*" category_default=$category_id order=$product_order}
{loop name="product_list" type="product" visible="*" category_default=$category_id order=$product_order page=$page limit=#max_displayed_products#}
<tr>
<td>{$ID}</td>
<td>
{loop type="image" name="cat_image" source="product" source_id="$ID" limit="1" width="50" height="50" resize_mode="crop" backend_context="1"}
<a href="{url path='/admin/products/update' product_id=$OBJECT_ID}" title="{intl l='Edit this product'}">
<a href="{url path='/admin/products/update' product_id=$OBJECT_ID page=$page}" title="{intl l='Edit this product'}">
<img src="{$IMAGE_URL}" alt="{$TITLE}" />
</a>
{/loop}
<td class="object-title"><a href="{url path='/admin/products/update' product_id=$ID}" title="{intl l='Edit this product'}">{$REF}</a></td>
<td class="object-title"><a href="{url path='/admin/products/update' product_id=$ID page=$page}" title="{intl l='Edit this product'}">{$REF}</a></td>
<td class="object-title"><a href="{url path='/admin/products/update' product_id=$ID}" title="{intl l='Edit this product'}">{$TITLE}</a></td>
<td class="object-title"><a href="{url path='/admin/products/update' product_id=$ID page=$page}" title="{intl l='Edit this product'}">{$TITLE}</a></td>
{module_include location='product_list_row'}
@@ -316,7 +316,7 @@
<td class="actions">
<div class="btn-group">
{loop type="auth" name="can_change" role="ADMIN" resource="admin.product" access="UPDATE"}
<a class="btn btn-default btn-xs" title="{intl l='Edit this product'}" href="{url path='/admin/products/update' product_id=$ID}"><i class="glyphicon glyphicon-edit"></i></a>
<a class="btn btn-default btn-xs" title="{intl l='Edit this product'}" href="{url path='/admin/products/update' product_id=$ID page=$page}"><i class="glyphicon glyphicon-edit"></i></a>
{/loop}
{loop type="auth" name="can_delete" role="ADMIN" resource="admin.product" access="DELETE"}
@@ -327,6 +327,20 @@
</tr>
{/loop}
</tbody>
<tfoot>
<tr>
<td colspan="6">
{include
file = "includes/pagination.html"
loop_ref = "product_list"
max_page_count = 10
page_url = "{url path="/admin/categories" category_id=$category_id product_order=$product_order}"
}
</td>
</tr>
</tfoot>
{/ifloop}
{elseloop rel="product_list"}
@@ -610,6 +624,7 @@
{capture "product_delete_dialog"}
<input type="hidden" name="product_id" id="product_delete_id" value="" />
<input type="hidden" name="category_id" value="{$category_id}" />
<input type="hidden" name="page" value="{$page}">
{module_include location='product_delete_form'}

View File

@@ -2,6 +2,7 @@
# --------------------------------
max_displayed_orders = 20
max_displayed_customers = 20
max_displayed_products = 20
# order status - seems ununsed ?
# ------------------------------

View File

@@ -12,6 +12,7 @@
}
{* Be sure to get the product ID, even if the form could not be validated*}
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="product_id" value="{$product_id}">
<input type="hidden" name="current_tab" value="general">
@@ -22,7 +23,7 @@
{/form_field}
{form_field form=$form field='success_url'}
<input type="hidden" name="{$name}" value="{url path='/admin/categories' category_id=$DEFAULT_CATEGORY}">
<input type="hidden" name="{$name}" value="{url path='/admin/categories' category_id=$DEFAULT_CATEGORY page=$page}">
{/form_field}
{form_field form=$form field='locale'}