From b4319e1f38e167435d4fa456488cb7acb8280ded Mon Sep 17 00:00:00 2001 From: Jitendra Singh Date: Wed, 15 Jan 2020 17:08:37 +0530 Subject: [PATCH] Issue #1863 fixed --- .../Admin/src/DataGrids/CMSPageDataGrid.php | 59 ++--- packages/Webkul/Admin/src/Http/routes.php | 5 +- .../Admin/src/Resources/lang/en/app.php | 8 +- .../src/Resources/views/cms/create.blade.php | 83 +++---- .../src/Resources/views/cms/edit.blade.php | 115 ++++----- .../src/Contracts/{CMS.php => CmsPage.php} | 2 +- .../CMS/src/Contracts/CmsPageTranslation.php | 7 + ...854_create_cms_page_translations_table.php | 41 ++++ ...06_remove_columns_from_cms_pages_table.php | 34 +++ ..._130209_create_cms_page_channels_table.php | 35 +++ .../Database/Seeders/CMSPagesTableSeeder.php | 107 +++++---- .../Http/Controllers/Admin/PageController.php | 219 ++++-------------- .../Shop/PagePresenterController.php | 39 +--- packages/Webkul/CMS/src/Models/CMS.php | 13 -- packages/Webkul/CMS/src/Models/CmsPage.php | 24 ++ .../Models/{CMSProxy.php => CmsPageProxy.php} | 2 +- .../CMS/src/Models/CmsPageTranslation.php | 13 ++ .../src/Models/CmsPageTranslationProxy.php | 10 + .../CMS/src/Providers/CMSServiceProvider.php | 5 +- .../src/Providers/ModuleServiceProvider.php | 3 +- .../CMS/src/Repositories/CMSRepository.php | 57 ----- .../CMS/src/Repositories/CmsRepository.php | 110 +++++++++ .../src/Repositories/CategoryRepository.php | 10 - 23 files changed, 497 insertions(+), 504 deletions(-) rename packages/Webkul/CMS/src/Contracts/{CMS.php => CmsPage.php} (68%) create mode 100644 packages/Webkul/CMS/src/Contracts/CmsPageTranslation.php create mode 100644 packages/Webkul/CMS/src/Database/Migrations/2020_01_14_191854_create_cms_page_translations_table.php create mode 100644 packages/Webkul/CMS/src/Database/Migrations/2020_01_14_192206_remove_columns_from_cms_pages_table.php create mode 100644 packages/Webkul/CMS/src/Database/Migrations/2020_01_15_130209_create_cms_page_channels_table.php delete mode 100644 packages/Webkul/CMS/src/Models/CMS.php create mode 100644 packages/Webkul/CMS/src/Models/CmsPage.php rename packages/Webkul/CMS/src/Models/{CMSProxy.php => CmsPageProxy.php} (67%) create mode 100644 packages/Webkul/CMS/src/Models/CmsPageTranslation.php create mode 100644 packages/Webkul/CMS/src/Models/CmsPageTranslationProxy.php delete mode 100644 packages/Webkul/CMS/src/Repositories/CMSRepository.php create mode 100644 packages/Webkul/CMS/src/Repositories/CmsRepository.php diff --git a/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php index 6e827af96..735ccf22e 100644 --- a/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php @@ -13,23 +13,26 @@ use DB; */ class CMSPageDataGrid extends DataGrid { - protected $index = 'id'; //the column that needs to be treated as index column + protected $index = 'id'; - protected $sortOrder = 'desc'; //asc or desc + protected $sortOrder = 'desc'; public function prepareQueryBuilder() { - $queryBuilder = DB::table('cms_pages')->select('id', 'url_key', 'page_title', 'channel_id', 'locale_id'); + $queryBuilder = DB::table('cms_pages') + ->select('cms_pages.id', 'cms_page_translations.page_title', 'cms_page_translations.url_key') + ->leftJoin('cms_page_translations', function($leftJoin) { + $leftJoin->on('cms_pages.id', '=', 'cms_page_translations.cms_page_id') + ->where('cms_page_translations.locale', app()->getLocale()); + }); + + $this->addFilter('id', 'cms_pages.id'); $this->setQueryBuilder($queryBuilder); } public function addColumns() { - $channels = app('Webkul\Core\Repositories\ChannelRepository'); - - $locales = app('Webkul\Core\Repositories\LocaleRepository'); - $this->addColumn([ 'index' => 'id', 'label' => trans('admin::app.datagrid.id'), @@ -39,15 +42,6 @@ class CMSPageDataGrid extends DataGrid 'filterable' => true ]); - $this->addColumn([ - 'index' => 'url_key', - 'label' => trans('admin::app.datagrid.url-key'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - $this->addColumn([ 'index' => 'page_title', 'label' => trans('admin::app.cms.pages.page-title'), @@ -58,45 +52,26 @@ class CMSPageDataGrid extends DataGrid ]); $this->addColumn([ - 'index' => 'locale_id', - 'label' => trans('admin::app.cms.pages.locale'), - 'type' => 'number', - 'searchable' => false, + 'index' => 'url_key', + 'label' => trans('admin::app.datagrid.url-key'), + 'type' => 'string', + 'searchable' => true, 'sortable' => true, - 'filterable' => true, - 'wrapper' => function($row) use($locales) { - $localeCode = $locales->find($row->locale_id)->code; - - return $row->locale_id.' ('. $localeCode. ')'; - } - ]); - - $this->addColumn([ - 'index' => 'channel_id', - 'label' => trans('admin::app.cms.pages.channel'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true, - 'wrapper' => function($row) use($channels) { - $channelCode = $channels->find($row->channel_id)->name; - - return $row->channel_id.' ('. $channelCode. ')'; - } + 'filterable' => true ]); } public function prepareActions() { $this->addAction([ 'title' => 'Edit CMSPage', - 'method' => 'GET', // use GET request only for redirect purposes + 'method' => 'GET', 'route' => 'admin.cms.edit', 'icon' => 'icon pencil-lg-icon' ]); $this->addAction([ 'title' => 'Delete CMSPage', - 'method' => 'POST', // use GET request only for redirect purposes + 'method' => 'POST', 'route' => 'admin.cms.delete', 'icon' => 'icon trash-icon' ]); diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 6da6f2068..ab1b4dfda 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -726,7 +726,6 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'admin::cms.index' ])->name('admin.cms.index'); - Route::get('preview/{url_key}', 'Webkul\CMS\Http\Controllers\Admin\PageController@preview')->name('admin.cms.preview'); Route::get('create', 'Webkul\CMS\Http\Controllers\Admin\PageController@create')->defaults('_config', [ 'view' => 'admin::cms.create' @@ -736,11 +735,11 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.cms.index' ])->name('admin.cms.store'); - Route::get('update/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@edit')->defaults('_config', [ + Route::get('edit/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@edit')->defaults('_config', [ 'view' => 'admin::cms.edit' ])->name('admin.cms.edit'); - Route::post('update/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@update')->defaults('_config', [ + Route::post('edit/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@update')->defaults('_config', [ 'redirect' => 'admin.cms.index' ])->name('admin.cms.update'); diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 5d0b7d911..71aa08dac 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -1142,13 +1142,13 @@ return [ 'pages' => [ 'general' => 'General', 'seo' => 'SEO', - 'pages' => 'Page', - 'title' => 'pages', + 'pages' => 'Pages', + 'title' => 'Pages', 'add-title' => 'Add Page', 'content' => 'Content', 'url-key' => 'URL Key', - 'channel' => 'Channel', - 'locale' => 'Locale', + 'channel' => 'Channels', + 'locale' => 'Locales', 'create-btn-title' => 'Save Page', 'edit-title' => 'Edit Page', 'edit-btn-title' => 'Save Page', diff --git a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php index 078c1edd1..59c1ecf24 100644 --- a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php @@ -11,9 +11,9 @@