feat: issue management
This commit is contained in:
parent
ef80dd0e74
commit
631af2b6c9
@ -7,6 +7,7 @@
|
||||
use App\Models\Classification;
|
||||
use App\Models\ContentRecap;
|
||||
use App\Models\GovernmentAgency;
|
||||
use App\Models\IssueManagement;
|
||||
use App\Models\Location;
|
||||
use App\Models\MediaMonitoring;
|
||||
use App\Models\News;
|
||||
@ -503,9 +504,18 @@ public function mediaMonitoring(Request $request){
|
||||
->addColumn('link', function ($data) {
|
||||
return '<a href="'.$data->link.'" target="_blank">'.$data->link.'</a>';
|
||||
})
|
||||
->addColumn('issue_status', function ($data) {
|
||||
if ($data->issue) {
|
||||
return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Sudah Ditambahkan</span>';
|
||||
}else{
|
||||
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Belum Ditambahkan</span>';
|
||||
}
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.media.monitoring.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$addIssueUrl = route('dashboard.issue.managements.create', ['media_monitoring' => encrypt_id($data->id)]);
|
||||
|
||||
$editUrl = route('dashboard.media.monitoring.edit', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$deleteUrl = route('dashboard.media.monitoring.destroy', ['id' => encrypt_id($data->id)]);
|
||||
@ -516,6 +526,10 @@ public function mediaMonitoring(Request $request){
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role(['1','2']) && !$data->issue) {
|
||||
$dropdown .= '<li><a href="'.$addIssueUrl.'"><em class="icon ni ni-plus"></em><span>Tambah Manajemen Isu</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
@ -532,7 +546,85 @@ public function mediaMonitoring(Request $request){
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['link', 'action'])
|
||||
->rawColumns(['issue_status', 'link', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
return response()->json(['error' => 'Unauthorized'], 401);
|
||||
|
||||
}
|
||||
|
||||
public function issueManagement(Request $request){
|
||||
if ($request->ajax()) {
|
||||
$data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get();
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('enhancer', function ($data) {
|
||||
return $data->enhancer->name;
|
||||
})
|
||||
->addColumn('code', function ($data) {
|
||||
return $data->mediaMonitoring->code;
|
||||
})
|
||||
->addColumn('media_name', function ($data) {
|
||||
return $data->mediaMonitoring->media_name;
|
||||
})
|
||||
->addColumn('monitoring_media_title', function ($data) {
|
||||
return '<div style="width: 100%;word-wrap: break-word; white-space: normal;">' . $data->mediaMonitoring->title . '</div>';
|
||||
})
|
||||
->addColumn('location', function ($data) {
|
||||
return $data->location->name;
|
||||
})
|
||||
->addColumn('sub_location', function ($data) {
|
||||
return $data->subLocation->name;
|
||||
})
|
||||
->addColumn('classification', function ($data) {
|
||||
return $data->classification->name;
|
||||
})
|
||||
->addColumn('sub_classification', function ($data) {
|
||||
return $data->subClassification->name;
|
||||
})
|
||||
->addColumn('issue', function ($data) {
|
||||
return Str::ucfirst($data->issue);
|
||||
})
|
||||
->addColumn('response', function ($data) {
|
||||
return Str::ucfirst($data->issue);
|
||||
})
|
||||
->addColumn('government_agencies', function ($data) {
|
||||
return $data->governmentAgencies->map(function($agency) {
|
||||
return Str::ucfirst($agency->name);
|
||||
})->implode(', ');
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.issue.managements.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$editUrl = route('dashboard.issue.managements.edit', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$deleteUrl = route('dashboard.issue.managements.destroy', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus manajemen isu '.$data->mediaMonitoring->code.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
}
|
||||
|
||||
$dropdown .= '</ul>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['monitoring_media_title', 'issue_status', 'link', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
129
app/Http/Controllers/Dashboard/IssueManagementController.php
Normal file
129
app/Http/Controllers/Dashboard/IssueManagementController.php
Normal file
@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\IssueManagementRequest;
|
||||
use App\Models\Classification;
|
||||
use App\Models\GovernmentAgency;
|
||||
use App\Models\IssueManagement;
|
||||
use App\Models\Location;
|
||||
use App\Models\MediaMonitoring;
|
||||
use App\Models\SubClassification;
|
||||
use App\Models\SubLocation;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class IssueManagementController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('dashboard.issue-managements.index', [
|
||||
'title' => 'Manajemen Isu'
|
||||
]);
|
||||
}
|
||||
|
||||
public function create(Request $request){
|
||||
return view('dashboard.issue-managements.create', [
|
||||
'title' => 'Tambah Manajemen Isu',
|
||||
'locations' => Location::all(),
|
||||
'classifications' => Classification::all(),
|
||||
'governmentAgencies' => GovernmentAgency::all(),
|
||||
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find(decrypt_id($request->input('media_monitoring'))),
|
||||
'mediaMonitoringId' => $request->input('media_monitoring') ?? null
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(IssueManagementRequest $request, $media_monitoring_id)
|
||||
{
|
||||
$validatedData = $request->validated();
|
||||
$validatedData['enhancer_id'] = Auth::id();
|
||||
$validatedData['media_monitoring_id'] = decrypt_id($media_monitoring_id);
|
||||
|
||||
$createdIssueManagement = IssueManagement::create($validatedData);
|
||||
|
||||
$createdIssueManagement->governmentAgencies()->attach($request->input('government_agencies'));
|
||||
|
||||
if ($createdIssueManagement->governmentAgencies()->count() > 0) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil menambahkan manajemen isu.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan manajemen isu');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function edit(Request $request, $id) {
|
||||
$issueManagement = IssueManagement::with([
|
||||
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer'
|
||||
])->findOrFail(decrypt_id($id));
|
||||
|
||||
return view('dashboard.issue-managements.edit', [
|
||||
'title' => 'Ubah Manajemen Isu',
|
||||
'locations' => Location::all(),
|
||||
'classifications' => Classification::all(),
|
||||
'governmentAgencies' => GovernmentAgency::all(),
|
||||
'selectedGovernmentAgencies' => $issueManagement->governmentAgencies->pluck('id')->toArray(),
|
||||
'issueManagement' => $issueManagement,
|
||||
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id),
|
||||
'mediaMonitoringId' => $request->input('media_monitoring') ?? null
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function update(IssueManagementRequest $request, $id){
|
||||
$validatedData = $request->validated();
|
||||
$issueManagement = IssueManagement::with([
|
||||
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer'
|
||||
])->findOrFail(decrypt_id($id));
|
||||
$validatedData['media_monitoring_id'] = $issueManagement->media_monitoring_id;
|
||||
|
||||
$updatedIssueManagement = $issueManagement->update($validatedData);
|
||||
if ($request->has('government_agencies')) {
|
||||
$issueManagement->governmentAgencies()->sync($validatedData['government_agencies']);
|
||||
}
|
||||
|
||||
if ($updatedIssueManagement) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil mengubah manajemen isu.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal mengubah manajemen isu');
|
||||
}
|
||||
}
|
||||
|
||||
public function show($id){
|
||||
$issueManagement = IssueManagement::with([
|
||||
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer'
|
||||
])->findOrFail(decrypt_id($id));
|
||||
|
||||
return view('dashboard.issue-managements.show', [
|
||||
'title' => 'Detail Manajemen Isu',
|
||||
'issueManagement' => $issueManagement,
|
||||
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id)
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy($id){
|
||||
try {
|
||||
$issueManagement = IssueManagement::findOrFail(decrypt_id($id));
|
||||
|
||||
$issueManagement->governmentAgencies()->detach();
|
||||
$issueManagement->delete();
|
||||
|
||||
return response()->json(['message' => 'Berhasil menghapus manajemen isu']);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['message' => 'Gagal menghapus manajemen isu.'], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function getSubLocations($location_id)
|
||||
{
|
||||
$subLocations = SubLocation::where('location_id', $location_id)->get();
|
||||
|
||||
return response()->json(['sub_locations' => $subLocations]);
|
||||
}
|
||||
|
||||
public function getSubClassifications($location_id)
|
||||
{
|
||||
$subLocations = SubClassification::where('classification_id', $location_id)->get();
|
||||
|
||||
return response()->json(['sub_classifications' => $subLocations]);
|
||||
}
|
||||
}
|
||||
64
app/Http/Requests/IssueManagementRequest.php
Normal file
64
app/Http/Requests/IssueManagementRequest.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class IssueManagementRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Auth::check() && is_role(['1','2']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'location_id' => ['required', 'exists:locations,id'],
|
||||
'sub_location_id' => ['required', 'exists:sub_locations,id'],
|
||||
'classification_id' => ['required', 'exists:classifications,id'],
|
||||
'sub_classification_id' => ['required', 'exists:sub_classifications,id'],
|
||||
'issue' =>['required'],
|
||||
'response' =>['required'],
|
||||
'description' =>['required'],
|
||||
'government_agencies' =>['required', 'array'],
|
||||
'government_agencies.*' =>['required', 'exists:government_agencies,id'],
|
||||
];
|
||||
}
|
||||
|
||||
public function messages()
|
||||
{
|
||||
return [
|
||||
'location_id.required' => 'Lokus harus dipilih.',
|
||||
'location_id.exists' => 'Lokus yang dipilih tidak valid.',
|
||||
|
||||
'sub_location_id.required' => 'Sub Lokus harus dipilih.',
|
||||
'sub_location_id.exists' => 'Sub Lokus yang dipilih tidak valid.',
|
||||
|
||||
'classification_id.required' => 'Klasifikasi harus dipilih.',
|
||||
'classification_id.exists' => 'Klasifikasi yang dipilih tidak valid.',
|
||||
|
||||
'sub_classification_id.required' => 'Sub Klasifikasi harus dipilih.',
|
||||
'sub_classification_id.exists' => 'Sub Klasifikasi yang dipilih tidak valid.',
|
||||
|
||||
'issue.required' => 'Masalah harus diisi.',
|
||||
'response.required' => 'Tanggapan harus diisi.',
|
||||
'description.required' => 'Deskripsi harus diisi.',
|
||||
|
||||
'government_agencies.required' => 'Agensi pemerintah harus dipilih.',
|
||||
'government_agencies.array' => 'Agensi pemerintah harus dalam bentuk array.',
|
||||
'government_agencies.*.required' => 'Agensi pemerintah pada setiap item harus dipilih.',
|
||||
'government_agencies.*.exists' => 'Agensi pemerintah yang dipilih tidak valid.',
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
@ -16,4 +16,11 @@ class GovernmentAgency extends Model
|
||||
'description',
|
||||
'enhancer_id',
|
||||
];
|
||||
|
||||
public function managementIssues()
|
||||
{
|
||||
return $this->belongsToMany(IssueManagement::class, 'issue_managements_government_agencies', 'government_agency_id', 'issue_management_id')
|
||||
->using(IssueManagementGovernmentAgency::class)
|
||||
->withTimestamps();
|
||||
}
|
||||
}
|
||||
|
||||
52
app/Models/IssueManagement.php
Normal file
52
app/Models/IssueManagement.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Model\Pivot;
|
||||
|
||||
class IssueManagement extends Model
|
||||
{
|
||||
protected $table = 'issue_managements';
|
||||
|
||||
protected $fillable = [
|
||||
'location_id',
|
||||
'sub_location_id',
|
||||
'classification_id',
|
||||
'sub_classification_id',
|
||||
'media_monitoring_id',
|
||||
'issue',
|
||||
'response',
|
||||
'description',
|
||||
'enhancer_id',
|
||||
];
|
||||
|
||||
public function location(){
|
||||
return $this->belongsTo(Location::class, 'location_id', 'id');
|
||||
}
|
||||
public function subLocation(){
|
||||
return $this->belongsTo(SubLocation::class, 'sub_location_id', 'id');
|
||||
}
|
||||
public function classification(){
|
||||
return $this->belongsTo(Classification::class, 'classification_id', 'id');
|
||||
}
|
||||
public function subClassification(){
|
||||
return $this->belongsTo(SubClassification::class, 'sub_classification_id', 'id');
|
||||
}
|
||||
|
||||
public function mediaMonitoring(){
|
||||
return $this->belongsTo(MediaMonitoring::class, 'media_monitoring_id', 'id');
|
||||
}
|
||||
|
||||
public function governmentAgencies()
|
||||
{
|
||||
return $this->belongsToMany(GovernmentAgency::class, 'issue_managements_government_agencies', 'issue_management_id', 'government_agency_id')
|
||||
->using(IssueManagementGovernmentAgency::class)
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function enhancer(){
|
||||
return $this->belongsTo(User::class, 'enhancer_id', 'id');
|
||||
}
|
||||
|
||||
}
|
||||
25
app/Models/IssueManagementGovernmentAgency.php
Normal file
25
app/Models/IssueManagementGovernmentAgency.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
|
||||
class IssueManagementGovernmentAgency extends Pivot
|
||||
{
|
||||
protected $table = 'issue_managements_government_agencies';
|
||||
|
||||
protected $fillable = [
|
||||
'issue_management_id',
|
||||
'government_agency_id',
|
||||
];
|
||||
|
||||
public function issueManagement(){
|
||||
return $this->belongsTo(IssueManagement::class, 'issue_management_id', 'id');
|
||||
}
|
||||
|
||||
public function GovernmentAgency(){
|
||||
return $this->belongsTo(GovernmentAgency::class, 'government_agency_id', 'id');
|
||||
}
|
||||
|
||||
}
|
||||
@ -26,6 +26,10 @@ class MediaMonitoring extends Model
|
||||
'enhancer_id',
|
||||
];
|
||||
|
||||
public function issue(){
|
||||
return $this->hasOne(IssueManagement::class, 'media_monitoring_id', 'id');
|
||||
}
|
||||
|
||||
public function enhancer()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'enhancer_id', 'id');
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
<?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('issue_managements', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('location_id');
|
||||
$table->foreign('location_id')->references('id')->on('locations');
|
||||
$table->unsignedBigInteger('sub_location_id');
|
||||
$table->foreign('sub_location_id')->references('id')->on('sub_locations');
|
||||
$table->unsignedBigInteger('classification_id');
|
||||
$table->foreign('classification_id')->references('id')->on('classifications');
|
||||
$table->unsignedBigInteger('sub_classification_id');
|
||||
$table->foreign('sub_classification_id')->references('id')->on('sub_classifications');
|
||||
$table->unsignedBigInteger('media_monitoring_id');
|
||||
$table->foreign('media_monitoring_id')->references('id')->on('media_monitorings');
|
||||
$table->enum('issue', ['positif','negatif','netral','krisis']);
|
||||
$table->enum('response', ['positif','negatif','netral','krisis']);
|
||||
$table->text('description');
|
||||
$table->unsignedBigInteger('enhancer_id');
|
||||
$table->foreign('enhancer_id')->references('id')->on('users');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('issue_management');
|
||||
}
|
||||
};
|
||||
@ -0,0 +1,36 @@
|
||||
<?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('issue_managements_government_agencies', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('issue_management_id');
|
||||
$table->unsignedBigInteger('government_agency_id');
|
||||
$table->foreign('issue_management_id', 'mi_ga_mi_fk')
|
||||
->references('id')->on('issue_managements')
|
||||
->onDelete('cascade');
|
||||
$table->foreign('government_agency_id', 'mi_ga_ga_fk')
|
||||
->references('id')->on('government_agencies')
|
||||
->onDelete('cascade');
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('issue_managements_government_agencies');
|
||||
}
|
||||
};
|
||||
17
database/seeders/IssueManagementSeeder.php
Normal file
17
database/seeders/IssueManagementSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class IssueManagementSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
65
public/assets/dashboard/js/issue-managements/create.js
Normal file
65
public/assets/dashboard/js/issue-managements/create.js
Normal file
@ -0,0 +1,65 @@
|
||||
$(document).ready(function() {
|
||||
// Menonaktifkan sub-location dan sub-classification saat halaman pertama kali dimuat
|
||||
$('#sub_location').prop('disabled', true);
|
||||
$('#sub_classification').prop('disabled', true);
|
||||
|
||||
// Memuat sub-location dan sub-classification berdasarkan data yang sudah ada
|
||||
function loadSubLocation(location_id) {
|
||||
if(location_id) {
|
||||
$.ajax({
|
||||
url: '/dashboard/issue-managements/get-sub-locations/' + location_id,
|
||||
type: 'GET',
|
||||
success: function(data) {
|
||||
$('#sub_location').empty();
|
||||
$('#sub_location').append('<option value="">Pilih Sub Lokus</option>');
|
||||
$.each(data.sub_locations, function(key, value) {
|
||||
$('#sub_location').append('<option value="'+ value.id +'">'+ value.name +'</option>');
|
||||
});
|
||||
$('#sub_location').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#sub_location').empty();
|
||||
$('#sub_location').prop('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
function loadSubClassification(classification_id) {
|
||||
if(classification_id) {
|
||||
$.ajax({
|
||||
url: '/dashboard/issue-managements/get-sub-classifications/' + classification_id,
|
||||
type: 'GET',
|
||||
success: function(data) {
|
||||
$('#sub_classification').empty();
|
||||
$('#sub_classification').append('<option value="">Pilih Sub Klasifikasi</option>');
|
||||
$.each(data.sub_classifications, function(key, value) {
|
||||
$('#sub_classification').append('<option value="'+ value.id +'">'+ value.name +'</option>');
|
||||
});
|
||||
$('#sub_classification').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#sub_classification').empty();
|
||||
$('#sub_classification').prop('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
// Memuat sub-location ketika location dipilih
|
||||
$('#location').change(function() {
|
||||
var location_id = $(this).val();
|
||||
loadSubLocation(location_id);
|
||||
});
|
||||
|
||||
// Memuat sub-classification ketika classification dipilih
|
||||
$('#classification').change(function() {
|
||||
var classification_id = $(this).val();
|
||||
loadSubClassification(classification_id);
|
||||
});
|
||||
|
||||
// Memanggil loadSubLocation dan loadSubClassification saat halaman pertama kali dimuat
|
||||
var initialLocationId = $('#location').val();
|
||||
loadSubLocation(initialLocationId);
|
||||
|
||||
var initialClassificationId = $('#classification').val();
|
||||
loadSubClassification(initialClassificationId);
|
||||
});
|
||||
78
public/assets/dashboard/js/issue-managements/edit.js
Normal file
78
public/assets/dashboard/js/issue-managements/edit.js
Normal file
@ -0,0 +1,78 @@
|
||||
$(document).ready(function() {
|
||||
// Menonaktifkan sub-location dan sub-classification saat halaman pertama kali dimuat
|
||||
$('#sub_location').prop('disabled', true);
|
||||
$('#sub_classification').prop('disabled', true);
|
||||
|
||||
// Memuat sub-location berdasarkan lokasi yang dipilih
|
||||
function loadSubLocation(location_id, selected_sub_location_id) {
|
||||
if(location_id) {
|
||||
$.ajax({
|
||||
url: '/dashboard/issue-managements/get-sub-locations/' + location_id,
|
||||
type: 'GET',
|
||||
success: function(data) {
|
||||
console.log(data); // Cek data yang dikirim
|
||||
$('#sub_location').empty();
|
||||
$('#sub_location').append('<option value="">Pilih Sub Lokus</option>');
|
||||
$.each(data.sub_locations, function(key, value) {
|
||||
var selected = value.id == selected_sub_location_id ? 'selected' : '';
|
||||
$('#sub_location').append('<option value="'+ value.id +'" ' + selected + '>'+ value.name +'</option>');
|
||||
});
|
||||
$('#sub_location').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#sub_location').empty();
|
||||
$('#sub_location').prop('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
// Memuat sub-classification berdasarkan klasifikasi yang dipilih
|
||||
function loadSubClassification(classification_id, selected_sub_classification_id) {
|
||||
if(classification_id) {
|
||||
$.ajax({
|
||||
url: '/dashboard/issue-managements/get-sub-classifications/' + classification_id,
|
||||
type: 'GET',
|
||||
success: function(data) {
|
||||
console.log(data); // Cek data yang dikirim
|
||||
$('#sub_classification').empty();
|
||||
$('#sub_classification').append('<option value="">Pilih Sub Klasifikasi</option>');
|
||||
$.each(data.sub_classifications, function(key, value) {
|
||||
var selected = value.id == selected_sub_classification_id ? 'selected' : '';
|
||||
$('#sub_classification').append('<option value="'+ value.id +'" ' + selected + '>'+ value.name +'</option>');
|
||||
});
|
||||
$('#sub_classification').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#sub_classification').empty();
|
||||
$('#sub_classification').prop('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
// Ambil nilai awal dari data-* attributes
|
||||
var initialLocationId = $('#location').data('initial-location-id');
|
||||
var initialSubLocationId = $('#sub_location').data('initial-sub-location-id');
|
||||
var initialClassificationId = $('#classification').data('initial-classification-id');
|
||||
var initialSubClassificationId = $('#sub_classification').data('initial-sub-classification-id');
|
||||
|
||||
// console.log('Initial Location ID:', initialLocationId);
|
||||
// console.log('Initial Sub Location ID:', initialSubLocationId);
|
||||
// console.log('Initial Classification ID:', initialClassificationId);
|
||||
// console.log('Initial Sub Classification ID:', initialSubClassificationId);
|
||||
|
||||
// Panggil fungsi untuk memuat sub-location dan sub-classification
|
||||
loadSubLocation(initialLocationId, initialSubLocationId);
|
||||
loadSubClassification(initialClassificationId, initialSubClassificationId);
|
||||
|
||||
// Menangani perubahan di dropdown 'location'
|
||||
$('#location').change(function() {
|
||||
var location_id = $(this).val();
|
||||
loadSubLocation(location_id, ''); // Kosongkan ID sub-location untuk saat ini
|
||||
});
|
||||
|
||||
// Menangani perubahan di dropdown 'classification'
|
||||
$('#classification').change(function() {
|
||||
var classification_id = $(this).val();
|
||||
loadSubClassification(classification_id, ''); // Kosongkan ID sub-classification untuk saat ini
|
||||
});
|
||||
});
|
||||
258
resources/views/dashboard/issue-managements/create.blade.php
Normal file
258
resources/views/dashboard/issue-managements/create.blade.php
Normal file
@ -0,0 +1,258 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'issue_managements'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
{{-- {{dd($mediaMonitoring)}} --}}
|
||||
<div id="accordion" class="accordion">
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head" data-bs-toggle="collapse" data-bs-target="#accordion-item-1">
|
||||
<h6 class="title text-primary">Detail Monitoring Media {{$mediaMonitoring->code}}</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse show" id="accordion-item-1" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
{{-- <div class="nk-block-head">
|
||||
<h5 class="title">Personal Information</h5>
|
||||
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
|
||||
</div> --}}
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Media</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->media_name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tema</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->theme}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Judul</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->title}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Link</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($mediaMonitoring->link != '' || $mediaMonitoring != null)
|
||||
<a href="{{$mediaMonitoring->link}}" target="__blank">{{$mediaMonitoring->link}}</a>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Penulis</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->writter}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kanal</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->channel}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Influencer</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->influencer}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kata Kunci</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->keyword}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Input</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Rilis</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->release_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Kutipan</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->quote!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Konten</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->content!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Gambar</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
<img src="{{asset('storage/uploads/media-monitorings/'. $mediaMonitoring->image)}}" alt="">
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
</div>
|
||||
<form action="{{route('dashboard.issue.managements.store', ['media_monitoring_id' => $mediaMonitoringId])}}" method="post">
|
||||
@csrf
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Lokus<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="location_id" id="location" data-search="on">
|
||||
@foreach ($locations as $location)
|
||||
<option value="{{$location->id}}" {{ old('location') == $location->id ? 'selected' : '' }}>{{$location->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Sub Lokus<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="sub_location_id" id="sub_location" data-search="on">
|
||||
<!-- Sub-location options will be loaded here -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Klasifikasi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="classification_id" id="classification" data-search="on">
|
||||
@foreach ($classifications as $classification)
|
||||
<option value="{{$classification->id}}" {{ old('classification') == $classification->id ? 'selected' : '' }}>{{$classification->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Sub Klasifikasi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="sub_classification_id" id="sub_classification" data-search="on">
|
||||
<!-- Sub-location options will be loaded here -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Isu<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="issue" id="issue">
|
||||
<option value="positif">Positif</option>
|
||||
<option value="negatif">Negatif</option>
|
||||
<option value="netral">Netral</option>
|
||||
<option value="krisis">Krisis</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Respon<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="response" id="response">
|
||||
<option value="positif">Positif</option>
|
||||
<option value="negatif">Negatif</option>
|
||||
<option value="netral">Netral</option>
|
||||
<option value="krisis">Krisis</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="phone-no-1">Keterangan Isu<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Dinas / OPD<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="government_agencies[]" id="government_agencies" data-search="on" multiple="multiple" data-placeholder="Pilih Dinas / OPD">
|
||||
@foreach ($governmentAgencies as $governmentAgency)
|
||||
<option value="{{ $governmentAgency->id }}"
|
||||
{{ in_array($governmentAgency->id, old('government_agencies', [])) ? 'selected' : '' }}>
|
||||
{{ $governmentAgency->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.media.monitoring.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="submit" class="btn btn-md btn-primary">Tambahkan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true, 'page' => 'create_issue_management'])
|
||||
262
resources/views/dashboard/issue-managements/edit.blade.php
Normal file
262
resources/views/dashboard/issue-managements/edit.blade.php
Normal file
@ -0,0 +1,262 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'issue_managements'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
{{-- {{dd($mediaMonitoring)}} --}}
|
||||
<div id="accordion" class="accordion">
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head" data-bs-toggle="collapse" data-bs-target="#accordion-item-1">
|
||||
<h6 class="title text-primary">Detail Monitoring Media {{$mediaMonitoring->code}}</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse show" id="accordion-item-1" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
{{-- <div class="nk-block-head">
|
||||
<h5 class="title">Personal Information</h5>
|
||||
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
|
||||
</div> --}}
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Media</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->media_name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tema</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->theme}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Judul</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->title}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Link</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($mediaMonitoring->link != '' || $mediaMonitoring != null)
|
||||
<a href="{{$mediaMonitoring->link}}" target="__blank">{{$mediaMonitoring->link}}</a>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Penulis</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->writter}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kanal</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->channel}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Influencer</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->influencer}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kata Kunci</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->keyword}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Input</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Rilis</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->release_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Kutipan</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->quote!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Konten</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->content!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Gambar</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
<img src="{{asset('storage/uploads/media-monitorings/'. $mediaMonitoring->image)}}" alt="">
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
</div>
|
||||
<form action="{{route('dashboard.issue.managements.update', ['id' => encrypt_id($issueManagement->id)])}}" method="post">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Lokus<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="location_id" id="location" data-search="on" data-initial-location-id="{{ $issueManagement->location_id }}">
|
||||
@foreach ($locations as $location)
|
||||
<option value="{{$location->id}}" {{ $issueManagement->location_id == $location->id ? 'selected' : '' }}>{{$location->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Sub Lokus<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="sub_location_id" id="sub_location" data-search="on" data-initial-sub-location-id="{{ $issueManagement->sub_location_id }}">
|
||||
<!-- Sub-location options will be loaded here -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Klasifikasi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="classification_id" id="classification" data-search="on" data-initial-classification-id="{{ $issueManagement->classification_id }}">
|
||||
@foreach ($classifications as $classification)
|
||||
<option value="{{$classification->id}}" {{ $issueManagement->classification_id == $classification->id ? 'selected' : '' }}>{{$classification->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Sub Klasifikasi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="sub_classification_id" id="sub_classification" data-search="on" data-initial-sub-classification-id="{{ $issueManagement->sub_classification_id }}">
|
||||
<!-- Sub-classification options will be loaded here -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Isu<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="issue" id="issue">
|
||||
<option value="positif" {{$issueManagement->issue == 'positif' ? 'selected' : ''}}>Positif</option>
|
||||
<option value="negatif" {{$issueManagement->issue == 'negatif' ? 'selected' : ''}}>Negatif</option>
|
||||
<option value="netral" {{$issueManagement->issue == 'netral' ? 'selected' : ''}}>Netral</option>
|
||||
<option value="krisis" {{$issueManagement->issue == 'krisis' ? 'selected' : ''}}>Krisis</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Respon<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="response" id="response">
|
||||
<option value="positif" {{$issueManagement->response == 'positif' ? 'selected' : ''}}>Positif</option>
|
||||
<option value="negatif" {{$issueManagement->response == 'negatif' ? 'selected' : ''}}>Negatif</option>
|
||||
<option value="netral" {{$issueManagement->response == 'netral' ? 'selected' : ''}}>Netral</option>
|
||||
<option value="krisis" {{$issueManagement->response == 'krisis' ? 'selected' : ''}}>Krisis</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="phone-no-1">Keterangan Isu<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="description">{!! $issueManagement->description!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label">Dinas / OPD<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-select js-select2" name="government_agencies[]" id="government_agencies" data-search="on" multiple="multiple" data-placeholder="Pilih Dinas / OPD">
|
||||
@foreach ($governmentAgencies as $governmentAgency)
|
||||
<option value="{{ $governmentAgency->id }}"
|
||||
{{ in_array($governmentAgency->id, old('government_agencies', $selectedGovernmentAgencies ?? [])) ? 'selected' : '' }}>
|
||||
{{ $governmentAgency->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.media.monitoring.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="submit" class="btn btn-md btn-primary">Tambahkan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true, 'page' => 'edit_issue_management'])
|
||||
69
resources/views/dashboard/issue-managements/index.blade.php
Normal file
69
resources/views/dashboard/issue-managements/index.blade.php
Normal file
@ -0,0 +1,69 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'issue_managements'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block-head nk-block-head-sm">
|
||||
<div class="nk-block-between">
|
||||
<div class="nk-block-head-content">
|
||||
<h3 class="nk-block-title page-title">{{$title}}</h3>
|
||||
</div><!-- .nk-block-head-content -->
|
||||
{{-- <div class="nk-block-head-content">
|
||||
<div class="toggle-wrap nk-block-tools-toggle">
|
||||
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="toggle-expand-content" data-content="pageMenu">
|
||||
<ul class="nk-block-tools g-3">
|
||||
<li>
|
||||
<div class="drodown">
|
||||
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt no-bdr">
|
||||
<li><a href="#"><span>Last 30 Days</span></a></li>
|
||||
<li><a href="#"><span>Last 6 Months</span></a></li>
|
||||
<li><a href="#"><span>Last 1 Years</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nk-block-tools-opt"><a href="{{route('dashboard.media.monitoring.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div><!-- .nk-block-between -->
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered nowrap" id="issueManagementsTable" border="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10% !important;">No</th>
|
||||
<th>Kode</th>
|
||||
<th>Media</th>
|
||||
<th>Monitoring Media</th>
|
||||
<th>Lokus</th>
|
||||
<th>Sub Lokus</th>
|
||||
<th>Klasifikasi</th>
|
||||
<th>Sub Klasifikasi</th>
|
||||
<th>Isu</th>
|
||||
<th>Tanggapan</th>
|
||||
<th>Dinas</th>
|
||||
<th style="width: 10% !important;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer' ,['datatable' => 'issue_management'])
|
||||
222
resources/views/dashboard/issue-managements/show.blade.php
Normal file
222
resources/views/dashboard/issue-managements/show.blade.php
Normal file
@ -0,0 +1,222 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'issue_managements'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card">
|
||||
<div class="card-aside-wrap">
|
||||
<div class="card-content">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Manajemen Isu {{$mediaMonitoring->code}}</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kode</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->mediaMonitoring->code}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Penginput</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->enhancer->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Lokus</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->location->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Sub Lokus</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->subLocation->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Klasifikasi</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->classification->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Sub Klasifikasi</span>
|
||||
<span class="profile-ud-value">{{$issueManagement->subClassification->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Isu</span>
|
||||
<span class="profile-ud-value">{{ucfirst($issueManagement->issue)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Respon</span>
|
||||
<span class="profile-ud-value">{{ucfirst($issueManagement->response)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Input</span>
|
||||
<span class="profile-ud-value">{{idn_date($issueManagement->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Dinas / OPD</span>
|
||||
<span class="profile-ud-value">
|
||||
@foreach ($issueManagement->governmentAgencies as $item)
|
||||
{{ $item->name }}{{ !$loop->last ? ', ' : '' }}
|
||||
@endforeach
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-block mt-3">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Keterangan Isu</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$issueManagement->description!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<hr>
|
||||
<div class="nk-block-head">
|
||||
<h5 class="title">Monitoring Media</h5>
|
||||
<p>Detail informasi monitoring media isu {{$mediaMonitoring->code}}</p>
|
||||
</div>
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Media</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->media_name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tema</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->theme}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Judul</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->title}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Link</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($mediaMonitoring->link != '' || $mediaMonitoring != null)
|
||||
<a href="{{$mediaMonitoring->link}}" target="__blank">{{$mediaMonitoring->link}}</a>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Penulis</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->writter}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kanal</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->channel}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Influencer</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->influencer}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Kata Kunci</span>
|
||||
<span class="profile-ud-value">{{$mediaMonitoring->keyword}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Input</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Rilis</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaMonitoring->release_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Kutipan</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->quote!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Konten</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaMonitoring->content!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Gambar</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
<img src="{{asset('storage/uploads/media-monitorings/'. $mediaMonitoring->image)}}" alt="">
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.issue.managements.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
</div><!-- .card-aside-wrap -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true])
|
||||
@ -49,6 +49,7 @@
|
||||
<th style="width: 30% !important;">Judul</th>
|
||||
<th>Media</th>
|
||||
<th>Link</th>
|
||||
<th>Issue</th>
|
||||
<th style="width: 10% !important;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -128,7 +128,7 @@
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.content.recaps.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<a href="{{route('dashboard.media.monitoring.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<a href="{{route('dashboard.content.recaps.edit', ['id' => encrypt_id($mediaMonitoring->id)])}}" class="btn btn-warning"><span>Ubah</span></a>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
|
||||
@ -228,6 +228,39 @@
|
||||
{ data: 'title', name: 'title' },
|
||||
{ data: 'media_name', name: 'media_name' },
|
||||
{ data: 'link', name: 'link' },
|
||||
{ data: 'issue_status', name: 'issue_status' },
|
||||
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
autoWidth: false,
|
||||
order: [[1, 'desc']],
|
||||
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if ($datatable === 'issue_management')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#issueManagementsTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.issue.managements.data') }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'code', name: 'code' },
|
||||
{ data: 'media_name', name: 'media_name' },
|
||||
{ data: 'monitoring_media_title', name: 'monitoring_media_title' },
|
||||
{ data: 'location', name: 'location' },
|
||||
{ data: 'sub_location', name: 'sub_location' },
|
||||
{ data: 'classification', name: 'classification' },
|
||||
{ data: 'sub_classification', name: 'sub_classification' },
|
||||
{ data: 'issue', name: 'issue' },
|
||||
{ data: 'response', name: 'response' },
|
||||
{ data: 'government_agencies', name: 'government_agencies' },
|
||||
// { data: 'government_agency', name: 'government_agency' },
|
||||
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
|
||||
@ -56,6 +56,14 @@
|
||||
|
||||
@include('partials.app.sweetalert')
|
||||
|
||||
@if (isset($page))
|
||||
@if ($page === 'create_issue_management')
|
||||
<script src="{{asset('assets/dashboard/js/issue-managements/create.js')}}"></script>
|
||||
@elseif ($page === 'edit_issue_management')
|
||||
<script src="{{asset('assets/dashboard/js/issue-managements/edit.js')}}"></script>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (isset($datatable))
|
||||
@include('partials.app.datatable', ['datatable' => $datatable])
|
||||
@endif
|
||||
|
||||
@ -135,6 +135,12 @@
|
||||
<span class="nk-menu-text">Selesai</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-archive"></em></span>
|
||||
<span class="nk-menu-text">Arsip</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-heading">
|
||||
<h6 class="overline-title text-primary-alt">Monitoring</h6>
|
||||
</li><!-- .nk-menu-item -->
|
||||
@ -151,7 +157,7 @@
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<a href="{{route('dashboard.issue.managements.index')}}" class="nk-menu-link {{$page === 'issue_managements' ? 'active-page' : ''}}">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-speed"></em></span>
|
||||
<span class="nk-menu-text">Manajemen Isu</span>
|
||||
</a>
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
use App\Http\Controllers\Dashboard\ContentRecapController;
|
||||
use App\Http\Controllers\Dashboard\DatatableController;
|
||||
use App\Http\Controllers\Dashboard\GovernmentAgencyController;
|
||||
use App\Http\Controllers\Dashboard\IssueManagementController;
|
||||
use App\Http\Controllers\Dashboard\LocationController;
|
||||
use App\Http\Controllers\Dashboard\MediaMonitoringController;
|
||||
use App\Http\Controllers\Dashboard\NewsController;
|
||||
@ -175,6 +176,24 @@
|
||||
Route::get('/data', [DatatableController::class, 'mediaMonitoring'])->name('data');
|
||||
});
|
||||
|
||||
Route::prefix('issue-managements')->name('issue.managements.')->group(function(){
|
||||
Route::controller(IssueManagementController::class)->group(function(){
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::get('/create', 'create')->name('create');
|
||||
Route::post('/{media_monitoring_id}', 'store')->name('store');
|
||||
Route::get('/{id}/show', 'show')->name('show');
|
||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||
Route::put('/{id}', 'update')->name('update');
|
||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||
|
||||
// AJAX
|
||||
Route::get('/get-sub-locations/{location_id}', 'getSubLocations')->name('get.sub.locations');
|
||||
Route::get('/get-sub-classifications/{classification_id}', 'getSubClassifications')->name('get.sub.classifications');
|
||||
});
|
||||
|
||||
Route::get('/data', [DatatableController::class, 'issueManagement'])->name('data');
|
||||
});
|
||||
|
||||
Route::prefix('users')->name('users.')->group(function(){
|
||||
Route::controller(UserController::class)->group(function(){
|
||||
Route::get('/', 'index')->name('index');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user