From 85a042b18ad05898f6557e4eb57ffc8d48dda56e Mon Sep 17 00:00:00 2001 From: glovetleong Date: Wed, 7 Jul 2021 17:19:22 +0800 Subject: [PATCH] contract template UI --- .../User/Api/ContractTemplateController.php | 7 + .../Modules/User/ContractTemplateModule.php | 10 + resources/js/user/langs/en.js | 23 +-- .../user/pages/contract-templates/Create.vue | 58 ++++++ .../Edit.vue} | 6 +- .../user/pages/contract-templates/Filter.vue | 75 +++++++ .../js/user/pages/contract-templates/Form.vue | 107 ++++++++++ .../js/user/pages/contract-templates/List.vue | 51 +++++ .../user/pages/contract-templates/Table.vue | 195 ++++++++++++++++++ resources/js/user/pages/contracts/List.vue | 14 +- resources/js/user/pages/contracts/Table.vue | 86 +++----- resources/js/user/router.js | 30 +++ resources/js/user/utilities/constants.js | 24 ++- .../js/user/utilities/navigationAccess.js | 15 ++ routes/user/api.php | 6 + routes/user/web.php | 6 + 16 files changed, 624 insertions(+), 89 deletions(-) create mode 100644 resources/js/user/pages/contract-templates/Create.vue rename resources/js/user/pages/{contracts/Profile.vue => contract-templates/Edit.vue} (92%) create mode 100644 resources/js/user/pages/contract-templates/Filter.vue create mode 100644 resources/js/user/pages/contract-templates/Form.vue create mode 100644 resources/js/user/pages/contract-templates/List.vue create mode 100644 resources/js/user/pages/contract-templates/Table.vue diff --git a/app/Http/Controllers/User/Api/ContractTemplateController.php b/app/Http/Controllers/User/Api/ContractTemplateController.php index bf0e7bb..1c9407f 100644 --- a/app/Http/Controllers/User/Api/ContractTemplateController.php +++ b/app/Http/Controllers/User/Api/ContractTemplateController.php @@ -45,4 +45,11 @@ class ContractTemplateController extends BaseController $contract_template = ContractTemplateModule::delete($request, $hash_id); return $contract_template; } + + public function validCheck(Request $request, $hash_id = '') + { + $method = empty($hash_id) ? 'POST' :'PUT'; + $valid = ContractTemplateModule::validCheck($request, $hash_id, $method); + return $valid; + } } diff --git a/app/Http/Modules/User/ContractTemplateModule.php b/app/Http/Modules/User/ContractTemplateModule.php index 30b44f5..f782693 100644 --- a/app/Http/Modules/User/ContractTemplateModule.php +++ b/app/Http/Modules/User/ContractTemplateModule.php @@ -70,6 +70,8 @@ class ContractTemplateModule extends BaseController public static function show(Request $request, $hash_id) { $id = Hasher::decode('contract_templates', $hash_id); + $user_id = Auth::guard('user-api')->user()->id; + $contract_template = ContractTemplate:: where('id', $id) ->where('user_id', $user_id) @@ -166,6 +168,14 @@ class ContractTemplateModule extends BaseController return response()->json($data); } + public static function validCheck(Request $request, $hash_id = '', $method = 'POST') + { + $id = $hash_id ? Hasher::decode('contract_templates', $hash_id) : ''; + $validation = ContractTemplateModule::validation($request, $id, $method); + if (!$validation->status) { + return response()->json($validation, 422); + } + } private static function validation(Request $request, $id = '', $method = 'POST') { diff --git a/resources/js/user/langs/en.js b/resources/js/user/langs/en.js index 41b096a..d92642d 100644 --- a/resources/js/user/langs/en.js +++ b/resources/js/user/langs/en.js @@ -4,28 +4,7 @@ const En = { 'username': 'username', 'email': 'email', 'password': 'password', - 'role_id': 'role', - 'permission_id': 'permission', - 'phone_code': 'phone code', - 'code': 'code', - 'currency_id': 'currency', - 'language_id': 'language', - 'symbol': 'symbol', - 'sell': 'sell', - 'buy': 'buy', - 'description': 'description', - 'min_file_size': 'min file size', - 'max_file_size': 'max file size', - 'credit_amount': 'credit amount', - 'media_property_type_id': 'media property type', - 'type': 'type', - 'mime_type_id': 'mime type', - 'trending_count': 'trending count', - 'bank_name': 'bank name', - 'holder_name': 'holder name', - 'holder_no': 'holder no', - 'country_id': 'country', - + 'complete_day_range': 'complete day range', // Error diff --git a/resources/js/user/pages/contract-templates/Create.vue b/resources/js/user/pages/contract-templates/Create.vue new file mode 100644 index 0000000..e756355 --- /dev/null +++ b/resources/js/user/pages/contract-templates/Create.vue @@ -0,0 +1,58 @@ + + diff --git a/resources/js/user/pages/contracts/Profile.vue b/resources/js/user/pages/contract-templates/Edit.vue similarity index 92% rename from resources/js/user/pages/contracts/Profile.vue rename to resources/js/user/pages/contract-templates/Edit.vue index a549586..1d2fc82 100644 --- a/resources/js/user/pages/contracts/Profile.vue +++ b/resources/js/user/pages/contract-templates/Edit.vue @@ -9,7 +9,7 @@ :menu_item_list="menu_item_list" > @@ -34,7 +34,7 @@ data() { let vm = this; return { - heading: 'Edit Profile', + heading: 'Edit Admin', icon: 'fa fa-edit', menu_item_list: [ { @@ -48,7 +48,7 @@ path: '/admin/list' }, { - title: 'Edit Profile', + title: 'Edit Admin', active: true, path: '/admin/edit/' + vm.$route.params.hash_id }, diff --git a/resources/js/user/pages/contract-templates/Filter.vue b/resources/js/user/pages/contract-templates/Filter.vue new file mode 100644 index 0000000..cf03288 --- /dev/null +++ b/resources/js/user/pages/contract-templates/Filter.vue @@ -0,0 +1,75 @@ + + + \ No newline at end of file diff --git a/resources/js/user/pages/contract-templates/Form.vue b/resources/js/user/pages/contract-templates/Form.vue new file mode 100644 index 0000000..25a09fd --- /dev/null +++ b/resources/js/user/pages/contract-templates/Form.vue @@ -0,0 +1,107 @@ + + + \ No newline at end of file diff --git a/resources/js/user/pages/contract-templates/List.vue b/resources/js/user/pages/contract-templates/List.vue new file mode 100644 index 0000000..1b66351 --- /dev/null +++ b/resources/js/user/pages/contract-templates/List.vue @@ -0,0 +1,51 @@ + + diff --git a/resources/js/user/pages/contract-templates/Table.vue b/resources/js/user/pages/contract-templates/Table.vue new file mode 100644 index 0000000..4e72124 --- /dev/null +++ b/resources/js/user/pages/contract-templates/Table.vue @@ -0,0 +1,195 @@ + + + diff --git a/resources/js/user/pages/contracts/List.vue b/resources/js/user/pages/contracts/List.vue index deecb09..f289ab2 100644 --- a/resources/js/user/pages/contracts/List.vue +++ b/resources/js/user/pages/contracts/List.vue @@ -8,30 +8,30 @@ - + diff --git a/resources/js/user/router.js b/resources/js/user/router.js index 70d003a..4ceedab 100644 --- a/resources/js/user/router.js +++ b/resources/js/user/router.js @@ -6,6 +6,10 @@ import Logins from './pages/logins/Index'; import Dashboards from './pages/dashboards/Index'; import UserProfile from './pages/users/Profile'; +import ContractTemplateList from './pages/contract-templates/List'; +import ContractTemplateCreate from './pages/contract-templates/Create'; +import ContractTemplateEdit from './pages/contract-templates/Edit'; + import ContractList from './pages/contracts/List'; import ContractCreate from './pages/contracts/Create'; import ContractEdit from './pages/contracts/Edit'; @@ -41,6 +45,32 @@ let router = new Router({ component: Dashboards }, ///////////////////////////////////////////////////// + // Contract Template + { + path: '/contract-template/list', + name: 'Contract Template List', + meta: { + auth: true + }, + component: ContractTemplateList + }, + { + path: '/contract-template/create', + name: 'Contract Template Create', + meta: { + auth: true + }, + component: ContractTemplateCreate + }, + { + path: '/contract-template/edit/:hash_id', + name: 'Contract Template Edit', + meta: { + auth: true + }, + component: ContractTemplateEdit + }, + ///////////////////////////////////////////////////// // Contract { path: '/contract/list', diff --git a/resources/js/user/utilities/constants.js b/resources/js/user/utilities/constants.js index 7da0d27..f304a68 100644 --- a/resources/js/user/utilities/constants.js +++ b/resources/js/user/utilities/constants.js @@ -28,7 +28,7 @@ const Constant = { 'color': 'danger' }, ], - 'role_status': [ + 'contract_template_status': [ { 'id': 1, 'name': 'Active', @@ -39,6 +39,28 @@ const Constant = { 'name': 'De-active', 'color': 'danger' }, + { + 'id': 9, + 'name': 'Pending', + 'color': 'warning' + }, + ], + 'contract_status': [ + { + 'id': 1, + 'name': 'Active', + 'color': 'primary' + }, + { + 'id': 2, + 'name': 'De-active', + 'color': 'danger' + }, + { + 'id': 9, + 'name': 'Pending', + 'color': 'warning' + }, ], }; export default Constant; \ No newline at end of file diff --git a/resources/js/user/utilities/navigationAccess.js b/resources/js/user/utilities/navigationAccess.js index de63c9e..6bf948c 100644 --- a/resources/js/user/utilities/navigationAccess.js +++ b/resources/js/user/utilities/navigationAccess.js @@ -17,6 +17,21 @@ module.exports.menuDefine = function(permission = []) { ] }); + ///////////////////////////////////////////////////// + if (permission.includes('view contract_template')) { + let admin_access_menu = {}; + admin_access_menu = { + title: 'Contract Template', + icon: 'fa fa-copy', + child: [ + { + href: '/contract-template/list', + title: 'List', + }, + ] + }; + menu.push(admin_access_menu); + } ///////////////////////////////////////////////////// if (permission.includes('view contract')) { let admin_access_menu = {}; diff --git a/routes/user/api.php b/routes/user/api.php index 1f2451c..2cc454c 100644 --- a/routes/user/api.php +++ b/routes/user/api.php @@ -140,6 +140,12 @@ Route::group(['namespace' => 'User', 'prefix' => 'user-backsys/api'], function ( 'middleware' => ['permission:delete contract_template'] ] ); + Route::post('valid-check/{hash_id?}', + [ + 'as' => 'api.contract-template.valid-check', + 'uses' => 'ContractTemplateController@validCheck', + ] + ); }); // Contract Templete Obligation diff --git a/routes/user/web.php b/routes/user/web.php index 4264452..c40e46a 100644 --- a/routes/user/web.php +++ b/routes/user/web.php @@ -4,7 +4,13 @@ Route::group(['namespace' => 'User'], function () { Route::group(['namespace' => 'Web'], function () { Route::get('/login', ['as' => 'user.app.login', 'uses' => 'AppController@index'])->where('any', '.*'); Route::get('/user/profile/update', ['as' => 'user.app.profile.update', 'uses' => 'AppController@index'])->where('any', '.*'); + Route::get('/contract-template/list', ['as' => 'user.app.contract-template.list', 'uses' => 'AppController@index'])->where('any', '.*'); + Route::get('/contract-template/create', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*'); + Route::get('/contract-template/edit/{hash_id}', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*'); + + Route::get('/contract/list', ['as' => 'user.app.contract.list', 'uses' => 'AppController@index'])->where('any', '.*'); + Route::get('/contract/create', ['as' => 'user.app.contract.create', 'uses' => 'AppController@index'])->where('any', '.*'); Route::get('/', ['as' => 'user.app', 'uses' => 'AppController@index'])->where('any', '.*'); }); }); \ No newline at end of file