Skip to content

Commit

Permalink
AdminController, ProductController の @component 対応
Browse files Browse the repository at this point in the history
  • Loading branch information
nanasess committed Aug 21, 2017
1 parent d2b0495 commit 49dc8db
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 30 deletions.
34 changes: 27 additions & 7 deletions src/Eccube/Controller/Admin/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
use Doctrine\ORM\Query\ResultSetMapping;
use Doctrine\ORM\QueryBuilder;
use Eccube\Annotation\Inject;
use Eccube\Annotation\Component;
use Eccube\Application;
use Eccube\Common\Constant;
use Eccube\Controller\AbstractController;
Expand All @@ -40,11 +41,17 @@
use Eccube\Form\Type\Admin\SearchOrderType;
use Eccube\Form\Type\Admin\SearchProductType;
use Eccube\Repository\MemberRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Form\Form;
use Symfony\Component\Form\FormFactory;
use Symfony\Component\HttpFoundation\Request;

/**
* @Component
* @Route(service=AdminController::class)
*/
class AdminController extends AbstractController
{
/**
Expand Down Expand Up @@ -77,6 +84,10 @@ class AdminController extends AbstractController
*/
protected $formFactory;

/**
* @Route("/{_admin}/login", name="admin_login")
* @Template("login.twig")
*/
public function login(Application $app, Request $request)
{
if ($app->isGranted('ROLE_ADMIN')) {
Expand All @@ -97,12 +108,16 @@ public function login(Application $app, Request $request)

$form = $builder->getForm();

return $app->render('login.twig', array(
return [
'error' => $app['security.last_error']($request),
'form' => $form->createView(),
));
];
}

/**
* @Route("/{_admin}", name="admin_homepage")
* @Template("index.twig")
*/
public function index(Application $app, Request $request)
{
// install.phpのチェック.
Expand Down Expand Up @@ -217,7 +232,7 @@ public function index(Application $app, Request $request)
);
$this->eventDispatcher->dispatch(EccubeEvents::ADMIN_ADMIM_INDEX_COMPLETE, $event);

return $app->render('index.twig', array(
return [
'searchOrderForm' => $searchOrderForm->createView(),
'searchProductForm' => $searchProductForm->createView(),
'searchCustomerForm' => $searchCustomerForm->createView(),
Expand All @@ -228,12 +243,15 @@ public function index(Application $app, Request $request)
'salesYesterday' => $salesYesterday,
'countNonStockProducts' => $countNonStockProducts,
'countCustomers' => $countCustomers,
));
];
}

/**
* パスワード変更画面
*
* @Route("/{_admin}/login", name="admin_change_password")
* @Template("change_password.twig")
*
* @param Application $app
* @param Request $request
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
Expand All @@ -246,7 +264,7 @@ public function changePassword(Application $app, Request $request)
$event = new EventArgs(
array(
'builder' => $builder,
),
p ),
$request
);
$this->eventDispatcher->dispatch(EccubeEvents::ADMIN_ADMIM_CHANGE_PASSWORD_INITIALIZE, $event);
Expand Down Expand Up @@ -291,14 +309,16 @@ public function changePassword(Application $app, Request $request)
$app->addError('admin.change_password.save.error', 'admin');
}

return $app->render('change_password.twig', array(
return [
'form' => $form->createView(),
));
];
}

/**
* 在庫なし商品の検索結果を表示する.
*
* @Route("/{_admin}/login", name="admin_homepage_nonstock")
*
* @param Application $app
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
Expand Down
43 changes: 39 additions & 4 deletions src/Eccube/Controller/Admin/Product/ProductController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
namespace Eccube\Controller\Admin\Product;

use Doctrine\ORM\EntityManager;
use Eccube\Annotation\Component;
use Eccube\Annotation\Inject;
use Eccube\Application;
use Eccube\Common\Constant;
Expand All @@ -44,6 +45,9 @@
use Eccube\Repository\ProductRepository;
use Eccube\Repository\TaxRuleRepository;
use Eccube\Service\CsvExportService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Form\FormFactory;
Expand All @@ -55,6 +59,10 @@
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException;

/**
* @Component
* @Route(service=ProductController::class)
*/
class ProductController extends AbstractController
{
/**
Expand Down Expand Up @@ -141,6 +149,11 @@ class ProductController extends AbstractController
*/
protected $session;

/**
* @Route("/{_admin}/product", name="admin_product")
* @Route("/{_admin}/product/page/{page_no}", requirements={"page_no" = "\d+"}, name="admin_product_page")
* @Template("Product/index.twig")
*/
public function index(Application $app, Request $request, $page_no = null)
{

Expand Down Expand Up @@ -271,7 +284,7 @@ public function index(Application $app, Request $request, $page_no = null)
}
}

return $app->render('Product/index.twig', array(
return [
'searchForm' => $searchForm->createView(),
'pagination' => $pagination,
'disps' => $disps,
Expand All @@ -280,9 +293,13 @@ public function index(Application $app, Request $request, $page_no = null)
'page_status' => $page_status,
'page_count' => $page_count,
'active' => $active,
));
];
}

/**
* @Method("POST")
* @Route("/{_admin}/product/product/image/add", name="admin_product_image_add")
*/
public function addImage(Application $app, Request $request)
{
if (!$request->isXmlHttpRequest()) {
Expand Down Expand Up @@ -322,6 +339,11 @@ public function addImage(Application $app, Request $request)
return $app->json(array('files' => $files), 200);
}

/**
* @Route("/{_admin}/product/new", name="admin_product_product_new")
* @Route("/{_admin}/product/product/{id}/edit", requirements={"id" = "\d+"}, name="admin_product_product_edit")
* @Template("Product/product.twig")
*/
public function edit(Application $app, Request $request, $id = null)
{
$has_class = false;
Expand Down Expand Up @@ -598,15 +620,19 @@ public function edit(Application $app, Request $request, $id = null)
$searchForm->handleRequest($request);
}

return $app->render('Product/product.twig', array(
return [
'Product' => $Product,
'form' => $form->createView(),
'searchForm' => $searchForm->createView(),
'has_class' => $has_class,
'id' => $id,
));
];
}

/**
* @Method("DELETE")
* @Route("/{_admin}/product/product/{id}/delete", requirements={"id" = "\d+"}, name="admin_product_product_delete")
*/
public function delete(Application $app, Request $request, $id = null)
{
$this->isTokenValid($app);
Expand Down Expand Up @@ -697,6 +723,10 @@ public function delete(Application $app, Request $request, $id = null)
return $app->redirect($app->url('admin_product_page', array('page_no' => $page_no)).'?resume='.Constant::ENABLED);
}

/**
* @Method("POST")
* @Route("/{_admin}/product/product/{id}/copy", requirements={"id" = "\d+"}, name="admin_product_product_copy")
*/
public function copy(Application $app, Request $request, $id = null)
{
$this->isTokenValid($app);
Expand Down Expand Up @@ -792,6 +822,9 @@ public function copy(Application $app, Request $request, $id = null)
return $app->redirect($app->url('admin_product'));
}

/**
* @Route("/{_admin}/product/product/{id}/display", requirements={"id" = "\d+"}, name="admin_product_product_display")
*/
public function display(Application $app, Request $request, $id = null)
{
$event = new EventArgs(
Expand All @@ -810,6 +843,8 @@ public function display(Application $app, Request $request, $id = null)
/**
* 商品CSVの出力.
*
* @Route("export", name="admin_product_export")
*
* @param Application $app
* @param Request $request
* @return StreamedResponse
Expand Down
20 changes: 1 addition & 19 deletions src/Eccube/ControllerProvider/AdminControllerProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,28 +39,10 @@ public function connect(Application $app)
$c->requireHttps();
}

// root
$c->match('/', '\Eccube\Controller\Admin\AdminController::index')->bind('admin_homepage');
$c->post('/nonstock', '\Eccube\Controller\Admin\AdminController::searchNonStockProducts')->bind('admin_homepage_nonstock');

// login
$c->match('/login', '\Eccube\Controller\Admin\AdminController::login')->bind('admin_login');

// change password
$c->match('/change_password', '\Eccube\Controller\Admin\AdminController::changePassword')->bind('admin_change_password');

// product
$c->match('/product', '\Eccube\Controller\Admin\Product\ProductController::index')->bind('admin_product');
$c->match('/product/export', '\Eccube\Controller\Admin\Product\ProductController::export')->bind('admin_product_export');
$c->match('/product/page/{page_no}', '\Eccube\Controller\Admin\Product\ProductController::index')->assert('page_no', '\d+')->bind('admin_product_page');
$c->match('/product/product/new', '\Eccube\Controller\Admin\Product\ProductController::edit')->bind('admin_product_product_new');
$c->match('/product/product/{id}/edit', '\Eccube\Controller\Admin\Product\ProductController::edit')->assert('id', '\d+')->bind('admin_product_product_edit');
$c->match('/product/product/class/{id}', '\Eccube\Controller\Admin\Product\ProductClassController::index')->assert('id', '\d+')->bind('admin_product_product_class');
$c->match('/product/product/{id}/display', '\Eccube\Controller\Admin\Product\ProductController::display')->assert('id', '\d+')->bind('admin_product_product_display');
$c->delete('/product/product/{id}/delete', '\Eccube\Controller\Admin\Product\ProductController::delete')->assert('id', '\d+')->bind('admin_product_product_delete');
$c->post('/product/product/{id}/copy', '\Eccube\Controller\Admin\Product\ProductController::copy')->assert('id', '\d+')->bind('admin_product_product_copy');

$c->post('/product/product/class/edit/{id}', '\Eccube\Controller\Admin\Product\ProductClassController::edit')->assert('id', '\d+')->bind('admin_product_product_class_edit');
$c->post('/product/product/image/add', '\Eccube\Controller\Admin\Product\ProductController::addImage')->bind('admin_product_image_add');

$c->match('/product/category', '\Eccube\Controller\Admin\Product\CategoryController::index')->bind('admin_product_category');
$c->match('/product/category/export', '\Eccube\Controller\Admin\Product\CategoryController::export')->bind('admin_product_category_export');
Expand Down

0 comments on commit 49dc8db

Please sign in to comment.