Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/vhost/itms.arukustech.com/public/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhost/itms.arukustech.com/public/dashboard_cards_edit.php
<?php
include "header.php";
require_once __DIR__ . '/../app/db.php';

$pdo = db();
$id = (int)$_GET['id'];

$card = $pdo->query("SELECT * FROM dashboard_cards WHERE id=$id")->fetch();
if (!$card) { die("Card not found"); }

$msg = "";

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $title = $_POST['title'];
    $color = $_POST['color'];
    $icon = $_POST['icon'];
    $query = trim($_POST['value_query']);
    $status = $_POST['status'];
    $sort = $_POST['sort_order'];

    if (stripos($query, "select") !== 0) {
        $msg = "Only SELECT queries allowed!";
    } else {

        $st = $pdo->prepare("
            UPDATE dashboard_cards 
            SET title=?, color=?, icon=?, value_query=?, status=?, sort_order=? 
            WHERE id=?
        ");

        $st->execute([$title, $color, $icon, $query, $status, $sort, $id]);

        header("Location: dashboard_cards.php");
        exit;
    }
}
?>

<h3>Edit Dashboard Card</h3>

<?php if ($msg): ?>
<div class="alert alert-danger"><?= $msg ?></div>
<?php endif; ?>

<div class="row">

    <div class="col-md-7">

        <form method="POST">

            <div class="mb-3">
                <label>Title</label>
                <input type="text" name="title" class="form-control"
                    required value="<?= $card['title'] ?>" onkeyup="updatePreview()">
            </div>

            <div class="mb-3">
                <label>Card Color</label>
                <select name="color" class="form-control" onchange="updatePreview()">
                    <option value="bg-blue"   <?= $card['color']=='bg-blue'?'selected':'' ?>>Blue</option>
                    <option value="bg-green"  <?= $card['color']=='bg-green'?'selected':'' ?>>Green</option>
                    <option value="bg-yellow" <?= $card['color']=='bg-yellow'?'selected':'' ?>>Yellow</option>
                    <option value="bg-red"    <?= $card['color']=='bg-red'?'selected':'' ?>>Red</option>
                </select>
            </div>

            <div class="mb-3">
                <label>Card Icon</label>
                <div class="input-group">
                    <input type="text" name="icon" class="form-control"
                        value="<?= $card['icon'] ?>" onkeyup="updatePreview()">
                    <button type="button" class="btn btn-secondary" onclick="openIconPicker()">Pick Icon</button>
                </div>
            </div>

            <div class="mb-3">
                <label>Value Query (SELECT only)</label>
                <textarea name="value_query" class="form-control" rows="4" required><?= $card['value_query'] ?></textarea>
            </div>

            <div class="mb-3">
                <label>Status</label>
                <select name="status" class="form-control">
                    <option value="1" <?= $card['status']==1?'selected':'' ?>>Active</option>
                    <option value="0" <?= $card['status']==0?'selected':'' ?>>Inactive</option>
                </select>
            </div>

            <div class="mb-3">
                <label>Sort Order</label>
                <input type="number" name="sort_order" class="form-control"
                    value="<?= $card['sort_order'] ?>">
            </div>

            <button class="btn btn-primary">Update Card</button>

        </form>
    </div>

    <!-- LIVE PREVIEW -->
    <div class="col-md-5">
        <label>Live Preview</label>
        <div id="cardPreview" class="stat-card <?= $card['color'] ?> mt-3">
            <p class="label"><?= $card['title'] ?></p>
            <h3>0</h3>
            <i class="icon <?= $card['icon'] ?>"></i>
        </div>
    </div>

</div>

<script>
function updatePreview() {
    let title = document.querySelector("[name=title]").value;
    let icon = document.querySelector("[name=icon]").value;
    let color = document.querySelector("[name=color]").value;

    document.querySelector("#cardPreview .label").innerText = title;
    document.querySelector("#cardPreview .icon").className = "icon " + icon;
    document.getElementById("cardPreview").className = "stat-card " + color;
}

function openIconPicker() {
    new bootstrap.Modal(document.getElementById("iconPickerModal")).show();
}
</script>

<?php include "footer.php"; ?>
<?php include "components/icon_picker.php"; ?>

Youez - 2016 - github.com/yon3zu
LinuXploit