Merge pull request #363 from WDI-Ideas/sayaliP

Sayali p
This commit is contained in:
CodewithSayali
2024-07-22 16:03:41 +05:30
committed by GitHub
9 changed files with 419 additions and 5 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\ManageReferralRule;
use Illuminate\Http\Request;
class ManageReferralController extends Controller
{
/**
* Created By : sayali parab
* Created at : 22 July 2024
* Use : To view Rules page.
*/
public function index()
{
$referral_rule = ManageReferralRule::all()->toArray();
return view('Admin.pages.manage_rule.manage_referral', compact('referral_rule'));
}
/**
* Created By : sayali parab
* Created at : 22 July 2024
* Use : To edit Rules.
*/
public function editReferral($id)
{
$referral_rule = ManageReferralRule::find($id);
// dd($referral_rule);
return view('Admin.pages.manage_rule.manage_referral_edit', compact('referral_rule'));
}
/**
* Created By : sayali parab
* Created at : 22 July 2024
* Use : To update Rules.
*/
public function updateReferral(Request $request)
{
$validated = $request->validate([
'article_des_title' => 'required',
'article_des_message' => 'required',
]);
$update = ManageReferralRule::find($request->rule_id);
$update->title = $request->input('article_des_title');
$update->message = $request->input('article_des_message');
$update->save();
return response()->json(['success' => true, 'status' => 200]);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ManageReferralRule extends Model
{
use HasFactory;
protected $table='manage_referral_rules';
protected $fillable=[
'id ',
'title',
'message',
'created_at',
'updated_at'
];
}

View File

@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('manage_referral_rules', function (Blueprint $table) {
$table->id();
$table->longtext('title')->nullable();
$table->longtext('message')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('manage_referral_rules');
}
};

View File

@@ -341,7 +341,7 @@
</li>
@endif
@if (Auth::guard('admin')->user()->getPermissionGranted(Auth::guard('admin')->user()->id, 'manage-rules'))
<!-- @if (Auth::guard('admin')->user()->getPermissionGranted(Auth::guard('admin')->user()->id, 'manage-rules'))
<li class="tooltip-element <?php
if ($currentPage == 'manage-rules') {
echo 'active';
@@ -350,12 +350,45 @@
<a href="{{ route('manage_rules') }}" data-active="6">
<div class="icons">
<img src="{{ asset('public/assets/img/Group.svg') }}" />
<span class="text">Manage Rules</span>
<span class="text">Manage Rules </span>
</div>
</a>
</li>
@endif
@endif -->
@if (Auth::guard('admin')->user()->getPermissionGranted(Auth::guard('admin')->user()->id, 'manage-rules'))
<button class="dropdown-btn-users mb-1 active">
<div class="icons d-flex align-items-center justify-content-start w-100">
<img src="{{ asset('public/assets/img/Group 57904.svg') }}" />
<span class="text-1">Manage Rules</span>
</div>
<i class="fa fa-angle-down mr-3" aria-hidden="true"></i>
</button>
<div class="dropdown-container"
style="{{ $currentPage == 'manage-rules' || $currentPage == 'manage-referral-rule' ? 'display: block;' : 'display: none;' }}">
<ul class="random_cl">
<li class="tooltip-element {{ $currentPage == 'manage-rules' ? 'active' : '' }}"
data-tooltip="1">
<a href="{{ route('manage_rules') }}" data-active="1" class="text">Redemption Rules
</a>
</li>
<li class="tooltip-element {{ $currentPage == 'manage-referral-rule' ? 'active' : '' }}"
data-tooltip="1">
<a href="{{ route('manage_referral') }}" data-active="1" class="text">Referral Rules
</a>
</li>
</ul>
</div>
@endif
@if (Auth::guard('admin')->user()->getPermissionGranted(Auth::guard('admin')->user()->id, 'manage-notification'))
<li class="tooltip-element <?php
if ($currentPage == 'manage-notification') {

View File

@@ -0,0 +1,63 @@
@extends('Admin.layouts.master')
@section('content')
@php
$currentPage = 'manage-referral-rule';
@endphp
<div class="layout-px-spacing">
<div class="middle-content container-xxl p-0">
<div class="row layout-top-spacing ">
<div class="top-tabel">
<div class="row">
<div class="col-md-12 left d-flex align-items-center justify-content-between" style="gap: 15px;">
<h6 class="card-title pl-2"> Manage Referral Rules </h6>
<a class="view-details-btn mr-2" href="{{ route('edit.referralRules', ['id' => $referral_rule[0]['id']]) }}"
data-id="{{$referral_rule[0]['id'] }}">
<span>Edit</span>
</a>
</div>
</div>
</div>
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
<div class="widget-content widget-content-area br-8 position-btn p-0">
@csrf
<div class="view-details">
<div class="simple-tab">
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home-tab-pane" role="tabpanel"
aria-labelledby="home-tab" tabindex="0">
<div class="row">
<div class="col-md-12">
<p>
How it works :
</p>
<p>
{!! $referral_rule[0]['title'] !!}
</p>
<p>
Rules :
</p>
<p>
{!! $referral_rule[0]['message'] !!}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('section_script')
@endsection

View File

@@ -0,0 +1,208 @@
@extends('Admin.layouts.master')
@section('content')
@php
$currentPage = 'manage-referral-rule';
@endphp
<style>
.error-message {
color: #FF0000;
}
form .error-message {
color: red;
/* Set your desired color here */
}
form .input_class.error-message {
color: #0e1726;
}
</style>
<div class="layout-px-spacing">
<div class="middle-content container-xxl p-0">
<div class="row layout-top-spacing ">
<div class="top-tabel">
<div class="row">
<div class="col-md-12 left d-flex align-items-center justify-content-between" style="gap: 15px;">
<a class="d-flex align-items-center justify-content-center pl-2"
href="{{route('manage_referral')}}">
<img class="back-btn" src="{{ asset('public/assets/img/left-arrow.svg') }}">
<h6 class="card-title p-0">Edit Referral Details</h6>
</a>
</div>
</div>
</div>
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
<div class="widget-content widget-content-area br-8 position-btn p-0">
<div class="view-details">
<div class="simple-tab">
@csrf
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home-tab-pane" role="tabpanel"
aria-labelledby="home-tab" tabindex="0">
<div class="row">
<form id="referral_rules_form">
<div class="col-md-12 mb-4">
<label for="referral-rules-quill-edit-title" class="form-label">How it works</label>
<input type="hidden" name="rule_id" value="{{ $referral_rule->id }}">
<input type="hidden" id="stored-title-message"
value="{{ $referral_rule->title }}">
<div id="referral-rules-quill-edit-title" class="editor-quill"
style="height: 300px;" minlength="10"></div>
<span class="error-message" id="error-message-title"></span>
</div>
<div class="col-md-12 mb-4">
<label for="referral-rules-quill-edit-message" class="form-label">Rules</label>
<input type="hidden" name="rule_id" value="{{ $referral_rule->id }}">
<input type="hidden" id="stored-message-message"
value="{{$referral_rule->message }}">
<div id="referral-rules-quill-edit-message" class="editor-quill"
style="height: 300px;" minlength="10"></div>
<span class="error-message" id="error-message-message"></span>
</div>
<div class="col-md-12">
<button type="submit" id="referral_update_rules"
class="download-btn-custom mt-3 custom-width-10">
<span>Update</span>
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('section_script')
<!-- <script>
var quill = new Quill('#terms-quill-edit', {
theme: 'snow'
});
</script> -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.min.js"></script>
<script>
$(document).ready(function() {
// Initialize Quill editors
var quillTitle = new Quill('#referral-rules-quill-edit-title', {
theme: 'snow'
});
var quillMessage = new Quill('#referral-rules-quill-edit-message', {
theme: 'snow'
});
// Set initial content for Quill editors
var storedTitle = document.getElementById('stored-title-message').value;
quillTitle.clipboard.dangerouslyPasteHTML(storedTitle);
var storedMessage = document.getElementById('stored-message-message').value;
quillMessage.clipboard.dangerouslyPasteHTML(storedMessage);
// Form submission logic
$('#referral_update_rules').on("click", function(e) {
e.preventDefault();
$('#referral_rules_form').validate({
ignore: [],
debug: false,
rules: {
article_des_title: {
required: true,
minlength: 1000,
},
article_des_message: {
required: true,
minlength: 1000,
}
},
messages: {
article_des_title: {
required: "Please Enter Rules Title",
minlength: "Please Enter Rules Title"
},
article_des_message: {
required: "Please Enter Rules Message",
minlength: "Please Enter Rules Message"
}
},
errorClass: 'error-message',
submitHandler: function(form) {
// Get the HTML content from Quill editors
var article_des_title = quillTitle.root.innerHTML;
var article_des_message = quillMessage.root.innerHTML;
if (article_des_title.trim() === '<p><br></p>' || article_des_message
.trim() === '<p><br></p>') {
toastr.error("Please Enter Rules");
return false;
}
let base_url = url_path;
var rule_id = document.querySelector('input[name="rule_id"]').value;
// Create a form data object
var formData = new FormData(form);
formData.append('article_des_title', article_des_title);
formData.append('article_des_message', article_des_message);
$.ajaxSetup({
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"),
},
});
$.ajax({
url: base_url + '/update_referral_rules',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(response) {
if (response.status == 200) {
toastr.success(
'Rules Data Updated Successfully');
setTimeout(function() {
window.location.href = base_url +
"/manage_referral_rules";
}, 1000);
} else {
toastr.error("Something went wrong");
}
},
error: function(response) {
toastr.error(
"An error occurred while updating the rules"
);
}
});
}
});
// Trigger form validation
$('#referral_rules_form').submit();
});
});
</script>
@endsection

View File

@@ -13,7 +13,7 @@
<div class="top-tabel">
<div class="row">
<div class="col-md-12 left d-flex align-items-center justify-content-between" style="gap: 15px;">
<h6 class="card-title pl-2"> Manage Rules </h6>
<h6 class="card-title pl-2"> Manage Redemptions Rules </h6>
<a class="view-details-btn mr-2" href="{{ route('rules_edit', ['id' => $data[0]['id']]) }}"
data-id="{{ $data[0]['id'] }}">
<span>Edit</span>

View File

@@ -30,7 +30,7 @@
<a class="d-flex align-items-center justify-content-center pl-2"
href="{{ route('manage_rules') }}">
<img class="back-btn" src="{{ asset('public/assets/img/left-arrow.svg') }}">
<h6 class="card-title p-0">Edit Details</h6>
<h6 class="card-title p-0">Edit Redemptions Details</h6>
</a>
</div>

View File

@@ -25,6 +25,7 @@ use App\Http\Controllers\Admin\ManageCmsController;
use App\Http\Controllers\Admin\RestaurantAppController;
use App\Http\Controllers\Admin\ManageLocationController;
use App\Http\Controllers\Admin\ManageRulesController;
use App\Http\Controllers\Admin\ManageReferralController;
@@ -223,6 +224,12 @@ Route::group(['middleware' => ['checkStatus']], function () {
Route::get('/manage_rules', [ManageRulesController::class, 'index'])->name('manage_rules');
Route::get('/rules_edit/{id}', [ManageRulesController::class, 'edit'])->name('rules_edit');
Route::post('/update_rules', [ManageRulesController::class, 'update']);
Route::get('/manage_referral_rules', [ ManageReferralController::class, 'index'])->name('manage_referral');
Route::get('/referral_rules_edit/{id}', [ManageReferralController::class, 'editReferral'])->name('edit.referralRules');
Route::post('/update_referral_rules', [ManageReferralController::class, 'updateReferral']);
});