HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //home/xedaptot/360.naniguide.com/backend/edit_blur.php
<?php
session_start();
$id_room = $_GET['id'];
$room = get_room($id_room,$_SESSION['id_user']);
$panorama_image = $room['panorama_image'];
$s3_params = check_s3_tour_enabled($_SESSION['id_virtualtour_sel']);
$s3_enabled = false;
$s3_url = "";
if(!empty($s3_params)) {
    $s3_bucket_name = $s3_params['bucket'];
    $s3_region = $s3_params['region'];
    $s3_url = init_s3_client($s3_params);
    if($s3_url!==false) {
        $s3_enabled = true;
    }
}
if($s3_enabled) {
    $panorama_url = $s3_url."viewer/panoramas/$panorama_image";
} else {
    $panorama_url = "../viewer/panoramas/$panorama_image";
}
?>

<?php if(!$room): ?>
    <div class="text-center">
        <div class="error mx-auto" data-text="401">401</div>
        <p class="lead text-gray-800 mb-5"><?php echo _("Permission denied"); ?></p>
        <p class="text-gray-500 mb-0"><?php echo _("It looks like that you do not have permission to access this page"); ?></p>
        <a href="index.php?p=dashboard">← <?php echo _("Back to Dashboard"); ?></a>
    </div>
    <script>
        $('.vt_select_header').remove();
    </script>
<?php die(); endif; ?>

<script language="javascript" src="js/jquery.canvasAreaDraw.js"></script>

<div class="row">
    <div class="col-md-12">
        <div class="card">
            <div class="card-body">
                <div id="loading">
                    <i class="fas fa-spin fa-circle-notch" aria-hidden="true"></i> <?php echo _("Loading panorama image ..."); ?>
                </div>
                <div id="div_blur" style="display: none">
                    <textarea style="display: none" class="canvas-area" disabled data-image-url="<?php echo $panorama_url; ?>"></textarea>
                    <button id="btn_reset" class="btn btn-warning btn-sm mb-1 disabled"><i class="fas fa-trash"></i> <?php echo _("CLEAR DRAW"); ?></button>
                    <button id="btn_zoom_in" class="btn btn-primary btn-sm mb-1"><i class="fas fa-search-plus"></i> <?php echo _("ZOOM IN"); ?></button>
                    <button id="btn_zoom_out" class="btn btn-primary btn-sm mb-1"><i class="fas fa-search-minus"></i> <?php echo _("ZOOM OUT"); ?></button>
                    <button onclick="apply_blur();" id="btn_apply" class="btn btn-success btn-sm float-right ml-1 mb-1 disabled"><i class="fas fa-check"></i> <?php echo _("APPLY BLUR"); ?></button>
                    <button data-toggle="modal" data-target="#modal_revert_original" id="btn_revert_original" class="btn btn-danger btn-sm float-right ml-1 mb-1 <?php echo ($room['blur']==0) ? 'disabled' : ''; ?>"><i class="fas fa-history"></i> <?php echo _("REVERT TO ORIGINAL"); ?></button>
                    <a href="index.php?p=edit_room&id=<?php echo $id_room; ?>" class="btn btn-primary btn-sm float-right mb-1"><i class="fas fa-chevron-left"></i> <?php echo _("BACK TO ROOM"); ?></a>
                    <div style="width:100%;height:80vh;overflow:scroll;">
                        <canvas id="canvas_draw"></canvas>
                    </div>
                    <div id="msg_drawing" style="position:absolute;width:auto;top:100px;left:50%;transform:translate(-50%);z-index:10;background-color:white;padding:0px 5px;border-radius:10px;text-align:center">
                        <?php echo _("Click on the image to start drawing the shape of blur"); ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div id="modal_apply_blur" class="modal" tabindex="-1" role="dialog" data-backdrop="static">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-body">
                <p><?php echo _("Creating blur effect in progress, please wait ..."); ?></p>
            </div>
        </div>
    </div>
</div>

<div id="modal_revert_original" class="modal" tabindex="-1" role="dialog" data-backdrop="static">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title"><?php echo _("REVERT TO ORIGINAL"); ?></h5>
            </div>
            <div class="modal-body">
                <p><?php echo _("Are you sure you want to restore the original image?"); ?></p>
            </div>
            <div class="modal-footer">
                <button <?php echo ($demo) ? 'disabled':''; ?> id="btn_apply_revert_original" onclick="revert_original();" type="button" class="btn btn-danger"><i class="fas fa-reply"></i> <?php echo _("Yes, Revert"); ?></button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="fas fa-times"></i> <?php echo _("Close"); ?></button>
            </div>
        </div>
    </div>
</div>

<script>
    (function($) {
        "use strict"; // Start of use strict
        window.id_room = <?php echo $id_room; ?>;
        window.s3_enabled = <?php echo ($s3_enabled) ? 1 : 0; ?>;
        window.s3_url = '<?php echo $s3_url; ?>';
        var panorama_load = new Image();
        if(window.s3_enabled==1) {
            var panorama_url = window.s3_url+'viewer/panoramas/<?php echo $panorama_image; ?>';
        } else {
            var panorama_url = '../viewer/panoramas/<?php echo $panorama_image; ?>';
        }
        $(panorama_load).on('load',function () {
            $('.canvas-area[data-image-url]').canvasAreaDraw();
            $('#loading').hide();
            $('#div_blur').show();
            if (sessionStorage.hasOwnProperty("top_scroll")) {
                setTimeout(function () {
                    var top_scroll = sessionStorage.getItem("top_scroll");
                    var left_scroll = sessionStorage.getItem("left_scroll");
                    var transform = sessionStorage.getItem("transform");
                    $('#canvas_draw').parent().scrollTop(top_scroll);
                    $('#canvas_draw').parent().scrollLeft(left_scroll);
                    $('#canvas_draw').css('transform',transform);
                    sessionStorage.clear();
                },100);
            } else {
                setTimeout(function () {
                    var w = $('#canvas_draw').width()-($('#div_blur').width());
                    var h = $('#canvas_draw').height()-($('#div_blur').height());
                    $('#canvas_draw').parent().scrollTop(h/2);
                    $('#canvas_draw').parent().scrollLeft(w/2);
                },100);
            }
        }).attr("src",panorama_url);
    })(jQuery); // End of use strict

    function apply_blur() {
        var top_scroll = $('#canvas_draw').parent().scrollTop();
        var left_scroll = $('#canvas_draw').parent().scrollLeft();
        var transform = $('#canvas_draw').css('transform');
        sessionStorage.setItem("top_scroll", top_scroll);
        sessionStorage.setItem("left_scroll", left_scroll);
        sessionStorage.setItem("transform", transform);
        $('#btn_apply').addClass('disabled');
        $('#modal_apply_blur').modal("show");
        var points = $('.canvas-area').val();
        $.ajax({
            url: "ajax/apply_blur.php",
            type: "POST",
            data: {
                points: points,
                panorama_image: '<?php echo $panorama_image; ?>'
            },
            async: true,
            success: function (json) {
                $('#btn_apply').removeClass('disabled');
                $('#modal_apply_blur').modal("hide");
                location.reload();
            }
        });
    }

    function revert_original() {
        var top_scroll = $('#canvas_draw').parent().scrollTop();
        var left_scroll = $('#canvas_draw').parent().scrollLeft();
        var transform = $('#canvas_draw').css('transform');
        sessionStorage.setItem("top_scroll", top_scroll);
        sessionStorage.setItem("left_scroll", left_scroll);
        sessionStorage.setItem("transform", transform);
        $('#modal_revert_original button').addClass('disabled');
        $('#btn_apply_revert_original').html('<i class="fas fa-spin fa-circle-notch" aria-hidden="true"></i>');
        $.ajax({
            url: "ajax/revert_original.php",
            type: "POST",
            data: {
                id_room: id_room,
                panorama_image: '<?php echo $panorama_image; ?>'
            },
            async: true,
            success: function (json) {
                $('#modal_revert_original button').removeClass('disabled');
                $('#modal_revert_original').modal("hide");
                location.reload();
            }
        });
    }
</script>