diff --git a/app/Http/Controllers/Admin/ManageSubAdminController.php b/app/Http/Controllers/Admin/ManageSubAdminController.php index 32f7adc..a004eaa 100644 --- a/app/Http/Controllers/Admin/ManageSubAdminController.php +++ b/app/Http/Controllers/Admin/ManageSubAdminController.php @@ -11,6 +11,9 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Exception; +use Illuminate\Support\Facades\Validator; +use Illuminate\Validation\Rule; +use Carbon\Carbon; use Illuminate\Support\Facades\Mail; use App\Mail\Add_Subadmin; @@ -31,23 +34,37 @@ class ManageSubAdminController extends Controller return view('Admin.pages.manage_users.manage_sub_admin.create', compact('sub_admins_module')); } - public function store_subadmin(Request $request) - { - /* + /* Created By : shailesh Gupta Created at : 29 May 2024 Use : To store sub admin form and email */ + public function store_subadmin(Request $request) + { + // Validation rules + $rules = [ + 'sub_admin_email' => 'required|string|email|max:100|unique:iam_principal,email_address,NULL,id,principal_type_xid,2', + + ]; + + // Custom error messages + $messages = [ + 'sub_admin_email.required' => 'Please enter this field', + 'sub_admin_email.email' => 'Please enter a valid email address', + 'sub_admin_email.unique' => 'This email is already registered', + ]; + + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return response()->json(['errors' => $validator->errors()], 422); + } + try { + DB::beginTransaction(); - // $existingEmail = IamPrincipal::where('email_address', $request->input('sub_admin_email'))->first(); - - // if ($existingEmail) { - // return jsonResponseWithErrorMessage(__('auth.email_already_used'), 500); - // } - // DB::beginTransaction(); $sub_admin = new IamPrincipal(); $sub_admin->first_name = $request->input('sub_admin_name'); $sub_admin->last_name = $request->input('sub_admin_lname'); @@ -58,11 +75,9 @@ class ManageSubAdminController extends Controller $sub_admin->password = bcrypt($request->input('password')); $sub_admin->save(); - $moduleIds = $request->input('module_id'); foreach ($moduleIds as $moduleId) { - $sub_admin_permission = new ManageModuleLink; $sub_admin_permission->principal_xid = $sub_admin->id; $sub_admin_permission->manage_modules_xid = $moduleId; @@ -74,22 +89,22 @@ class ManageSubAdminController extends Controller 'password' => $request->input('password'), ]; + Mail::to($sub_admin->email_address)->send(new Add_Subadmin($mailData)); - - // Mail::to($sub_admin->email_address)->send(new Add_Subadmin($mailData)); - $mail = Mail::to($request->input('sub_admin_email'))->send(new Add_Subadmin($mailData)); - // dd($mail); - - // DB::commit(); + DB::commit(); return jsonResponseWithSuccessMessage(__('success.save_data')); - // return response()->json(['status'=>200]); - // return $voucher_data; } catch (Exception $e) { DB::rollBack(); - Log::error("restaurant Store Page Load Failed " . $e->getMessage()); + Log::error("Store Subadmin Page Load Failed: " . $e->getMessage()); return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500); } } + + + + + + public function edit($id) { // dd($id); @@ -131,6 +146,25 @@ class ManageSubAdminController extends Controller Use : To update sub admin form. */ try { + + + $rules = [ + 'sub_admin_email' => 'required|string|email|max:100|unique:iam_principal,email_address,NULL,id,principal_type_xid,2', + + ]; + + $messages = [ + 'sub_admin_email.required' => 'Please enter this field', + 'sub_admin_email.email' => 'Please enter a valid email address', + 'sub_admin_email.unique' => 'This email is already registered', + ]; + + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return response()->json(['errors' => $validator->errors()], 422); + } + DB::beginTransaction(); $sub_admin = IamPrincipal::find($request->sub_admin_id); diff --git a/app/Services/APIs/CustomerAPIs/RulesApiServices.php b/app/Services/APIs/CustomerAPIs/RulesApiServices.php index 3724bbd..3599332 100644 --- a/app/Services/APIs/CustomerAPIs/RulesApiServices.php +++ b/app/Services/APIs/CustomerAPIs/RulesApiServices.php @@ -28,7 +28,7 @@ class RulesApiServices public function getReferralRules() { try { - $data = ManageReferralRule::select('id', 'title', 'message') + $data = ManageReferralRule::select('id', 'how_it_works', 'rules') ->get() ->toArray(); diff --git a/public/assets/js/admin/manage_sub_admin/add.js b/public/assets/js/admin/manage_sub_admin/add.js index 437c17e..ab91beb 100644 --- a/public/assets/js/admin/manage_sub_admin/add.js +++ b/public/assets/js/admin/manage_sub_admin/add.js @@ -2,6 +2,7 @@ $(document).on("click", "#add_sub_admin_form_btn", function (e) { $.validator.addMethod("lettersOnly", function (value, element) { return this.optional(element) || /^[a-zA-Z\s]+$/.test(value); }, "Please enter alphabetic characters only"); + $('#add_sub_admin_form').validate({ ignore: [], debug: false, @@ -10,42 +11,39 @@ $(document).on("click", "#add_sub_admin_form_btn", function (e) { sub_admin_name: { required: true, lettersOnly: true - }, sub_admin_lname: { required: true, lettersOnly: true - }, sub_admin_email: { required: true, email: true - }, password: { - required: true - } - ,"module_id[]":{ + required: true, + minlength: 8 + }, + "module_id[]": { required: true } }, messages: { sub_admin_name: { required: 'Please enter this field', - }, sub_admin_lname: { required: 'Please enter this field', - }, sub_admin_email: { required: 'Please enter this field', email: 'Please enter a valid email address' }, password: { - required: 'Please enter this field' + required: 'Please enter this field', + minlength: 'Password must be at least 8 characters long' }, - "module_id[]":{ + "module_id[]": { required: 'Please enter this field' } }, @@ -53,7 +51,6 @@ $(document).on("click", "#add_sub_admin_form_btn", function (e) { submitHandler: function (form) { var formData = new FormData(form); let base_url = url_path; - console.log(formData); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') @@ -71,24 +68,31 @@ $(document).on("click", "#add_sub_admin_form_btn", function (e) { contentType: false, success: function (result) { if (result.status_code == 200) { - toastr.success('Data Added Sucessfully'); + toastr.success('Data Added Successfully'); setTimeout(function () { window.location.href = base_url + "/manage-sub-admin"; }, 2000); } else { - toastr.error('Something Went Wrong'); - setTimeout(function () { - window.location.href = base_url + "/manage-sub-admin"; - }, 2000); + toastr.error(result.messages); + $('#add_sub_admin_form_btn').attr('disabled', false); + $('#add_sub_admin_form_btn').text('Submit'); + } + }, + error: function(xhr) { + if (xhr.status === 422) { + var errors = JSON.parse(xhr.responseText).errors; + $.each(errors, function (key, value) { + toastr.error(value); + }); + + } else { + toastr.error('An error occurred: ' + xhr.responseText); } $('#add_sub_admin_form_btn').attr('disabled', false); $('#add_sub_admin_form_btn').text('Submit'); - }, - + } }); - - // $('#add_sub_admin_form_btn').attr('disabled', false); - // $('#add_sub_admin_form_btn').text('Submit'); } }); }); + diff --git a/public/assets/js/admin/manage_sub_admin/edit.js b/public/assets/js/admin/manage_sub_admin/edit.js index e0e0903..fd96801 100644 --- a/public/assets/js/admin/manage_sub_admin/edit.js +++ b/public/assets/js/admin/manage_sub_admin/edit.js @@ -27,41 +27,54 @@ $('#update_admin_btn').on("click", function (e) { } }, errorClass: 'error-message', - submitHandler: function(form) { + submitHandler: function (form) { var formData = new FormData(form); let base_url = url_path; e.preventDefault(), - $.ajaxSetup({ - headers: { - 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') - } - }); + $.ajaxSetup({ + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + } + }); $.ajax({ url: base_url + '/update_sub_admin', type: 'POST', data: formData, - beforeSend:function(){ + beforeSend: function () { $('#update_admin_btn').html('Please wait...'); $('#update_admin_btn').attr('disabled', true); }, processData: false, contentType: false, - success: function(result) { + success: function (result) { if (result.status_code == 200) { toastr.success('Data Updated Sucessfully'); - setTimeout(function() { + setTimeout(function () { window.location.href = base_url + "/manage-sub-admin"; }, 2000); } else { toastr.error('Something Went Wrong'); - setTimeout(function() { + setTimeout(function () { window.location.href = base_url + "/manage-sub-admin"; }, 2000); } $('#update_admin_btn').attr('disabled', false); $('#update_admin_btn').text('Submit'); }, + error: function (xhr) { + if (xhr.status === 422) { + var errors = JSON.parse(xhr.responseText).errors; + $.each(errors, function (key, value) { + toastr.error(value); + }); + + } else { + toastr.error('An error occurred: ' + xhr.responseText); + } + $('#update_admin_btn').attr('disabled', false); + $('#update_admin_btn').text('Submit'); + } }); diff --git a/resources/views/Admin/pages/manage_users/manage_sub_admin/create.blade.php b/resources/views/Admin/pages/manage_users/manage_sub_admin/create.blade.php index 4a40b2a..7d8ed9c 100644 --- a/resources/views/Admin/pages/manage_users/manage_sub_admin/create.blade.php +++ b/resources/views/Admin/pages/manage_users/manage_sub_admin/create.blade.php @@ -44,9 +44,9 @@ - - - + + + @@ -90,7 +90,7 @@