HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/slfopp7cb1df/public_html/pm/app/Views/tickets/view.php
<?php $user_id = $login_user->id; ?>

<?php if ($view_type != "modal_view") { ?>
    <div id="page-content" class="page-wrapper clearfix">
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="page-title clearfix">
                        <h1><?php echo get_ticket_id($ticket_info->id) . " - " . $ticket_info->title ?></h1>
                        <div class="title-button-group p10">

                            <span class="dropdown inline-block">
                                <button class="btn btn-default dropdown-toggle caret mt0 mb0" type="button" data-bs-toggle="dropdown" aria-expanded="true">
                                    <i data-feather='settings' class='icon-16'></i> <?php echo app_lang('actions'); ?>
                                </button>
                                <ul class="dropdown-menu float-end" role="menu">
                                    <?php if ($login_user->user_type == "staff") { ?>
                                        <li role="presentation"><?php echo modal_anchor(get_uri("tickets/modal_form"), "<i data-feather='edit-2' class='icon-16'></i> " . app_lang('edit'), array("title" => app_lang('ticket'), "data-post-view" => "details", "data-post-id" => $ticket_info->id, "class" => "dropdown-item")); ?></li>
                                        <?php if ($can_create_tasks && !$ticket_info->task_id) { ?> 
                                            <li role="presentation"><?php echo modal_anchor(get_uri("projects/task_modal_form"), "<i data-feather='plus-circle' class='icon-16'></i> " . app_lang('create_new_task'), array("title" => app_lang('create_new_task'), "data-post-project_id" => $ticket_info->project_id, "data-post-ticket_id" => $ticket_info->id, "class" => "dropdown-item")); ?></li>
                                        <?php } ?>

                                    <?php } ?>

                                    <?php if ($ticket_info->status === "closed") { ?>
                                        <li role="presentation"><?php echo ajax_anchor(get_uri("tickets/save_ticket_status/$ticket_info->id/open"), "<i data-feather='check-circle' class='icon-16'></i> " . app_lang('mark_as_open'), array("class" => "dropdown-item", "title" => app_lang('mark_as_open'), "data-reload-on-success" => "1")); ?> </li>
                                    <?php } else { ?>
                                        <li role="presentation"><?php echo ajax_anchor(get_uri("tickets/save_ticket_status/$ticket_info->id/closed"), "<i data-feather='check-circle' class='icon-16'></i> " . app_lang('mark_as_closed'), array("class" => "dropdown-item", "title" => app_lang('mark_as_closed'), "data-reload-on-success" => "1")); ?> </li>
                                    <?php } ?>
                                    <?php if ($ticket_info->assigned_to === "0" && $login_user->user_type == "staff") { ?>
                                        <li role="presentation"><?php echo ajax_anchor(get_uri("tickets/assign_to_me/$ticket_info->id"), "<i data-feather='user' class='icon-16'></i> " . app_lang('assign_to_me'), array("class" => "dropdown-item", "title" => app_lang('assign_myself_in_this_ticket'), "data-reload-on-success" => "1")); ?></li>
                                    <?php } ?>
                                    <?php if ($ticket_info->client_id === "0" && $login_user->user_type == "staff") { ?>
                                        <?php if ($can_create_client) { ?>
                                            <li role="presentation"><?php echo modal_anchor(get_uri("clients/modal_form"), "<i data-feather='plus' class='icon-16'></i> " . app_lang('link_to_new_client'), array("title" => app_lang('link_to_new_client'), "data-post-ticket_id" => $ticket_info->id, "class" => "dropdown-item")); ?></li>
                                        <?php } ?>
                                        <li role="presentation"><?php echo modal_anchor(get_uri("tickets/add_client_modal_form/$ticket_info->id"), "<i data-feather='link' class='icon-16'></i> " . app_lang('link_to_existing_client'), array("title" => app_lang('link_to_existing_client'), "class" => "dropdown-item")); ?></li>
                                    <?php } ?>
                                </ul>
                            </span>
                        </div>
                    </div>
                    <div class="card-body ticket-card">
                        <?php echo view("tickets/view_data"); ?>
                    </div>
                </div>
            </div>
        </div>
    <?php } else { ?>
        <div class="modal-body clearfix general-form">
            <?php echo view("tickets/view_data"); ?>
        </div>

        <div class="modal-footer">
            <?php if ($ticket_info->assigned_to === "0" && $login_user->user_type == "staff") { ?>
                <?php echo ajax_anchor(get_uri("tickets/assign_to_me/$ticket_info->id"), "<i data-feather='user' class='icon-16'></i> " . app_lang('assign_to_me'), array("class" => "btn btn-info text-white", "title" => app_lang('assign_myself_in_this_ticket'), "data-reload-on-success" => "1")); ?>
            <?php } ?>
            <?php if ($ticket_info->status === "closed") { ?>
                <?php echo ajax_anchor(get_uri("tickets/save_ticket_status/$ticket_info->id/open"), "<i data-feather='check-circle' class='icon-16'></i> " . app_lang('mark_as_open'), array("class" => "btn btn-danger", "title" => app_lang('mark_as_open'), "data-reload-on-success" => "1")); ?>
            <?php } else { ?>
                <?php echo ajax_anchor(get_uri("tickets/save_ticket_status/$ticket_info->id/closed"), "<i data-feather='check-circle' class='icon-16'></i> " . app_lang('mark_as_closed'), array("class" => "btn btn-success", "title" => app_lang('mark_as_closed'), "data-reload-on-success" => "1")); ?>
            <?php } ?>
            <?php if ($login_user->user_type == "staff") { ?>
                <?php if ($can_create_tasks && !$ticket_info->task_id) { ?> 
                    <?php echo modal_anchor(get_uri("projects/task_modal_form"), "<i data-feather='plus-circle' class='icon-16'></i> " . app_lang('create_new_task'), array("title" => app_lang('create_new_task'), "data-post-project_id" => $ticket_info->project_id, "data-post-ticket_id" => $ticket_info->id, "class" => "btn btn-default")); ?>
                <?php } ?>
                <?php echo modal_anchor(get_uri("tickets/modal_form"), "<i data-feather='edit-2' class='icon-16'></i> " . app_lang('edit'), array("title" => app_lang('ticket'), "data-post-view" => "details", "data-post-id" => $ticket_info->id, "class" => "btn btn-default")); ?>
            <?php } ?>

            <button type="button" class="btn btn-default" data-bs-dismiss="modal"><span data-feather="x" class="icon-16"></span> <?php echo app_lang('close'); ?></button>
        </div>
    <?php } ?>

    <script type="text/javascript">
        $(document).ready(function () {
            var uploadUrl = "<?php echo get_uri("tickets/upload_file"); ?>";
            var validationUrl = "<?php echo get_uri("tickets/validate_ticket_file"); ?>";

            var decending = "<?php echo $sort_as_decending; ?>";

            var dropzone = attachDropzoneWithForm("#ticket-comment-dropzone", uploadUrl, validationUrl);

            $("#comment-form").appForm({
                isModal: false,
                onSuccess: function (result) {
                    $("#description").val("");

                    if (decending) {
                        $(result.data).insertAfter("#comment-form-container");
                    } else {
                        $(result.data).insertBefore("#comment-form-container");
                    }

                    appAlert.success(result.message, {duration: 10000});

                    dropzone.removeAllFiles();
                }
            });

            if ("<?php echo!get_setting('user_' . $user_id . '_signature') == '' ?>") {
                $("#description").text("\n" + $("#description").text());
                $("#description").focus();
            }

            window.refreshAfterAddTask = true;

            var $inputField = $("#description"), $lastFocused;

            function saveCursorPositionOfRichEditor() {
                $inputField.summernote('saveRange');
                $lastFocused = "rich-editor";
            }

            //store the cursor position
            if (AppHelper.settings.enableRichTextEditor === "1") {
                $inputField.on("summernote.change", function (e) {
                    saveCursorPositionOfRichEditor();
                });

                //it'll grab only cursor clicks
                $("body").on("click", ".note-editable", function () {
                    saveCursorPositionOfRichEditor();
                });
            } else {
                $inputField.focus(function () {
                    $lastFocused = document.activeElement;
                });
            }

            function insertTemplate(text) {
                if ($lastFocused === undefined) {
                    return;
                }

                if (AppHelper.settings.enableRichTextEditor === "1") {
                    $inputField.summernote('restoreRange');
                    $inputField.summernote('focus');
                    $inputField.summernote('pasteHTML', text);
                } else {
                    var scrollPos = $lastFocused.scrollTop;
                    var pos = 0;
                    var browser = (($lastFocused.selectionStart || $lastFocused.selectionStart === "0") ? "ff" : (document.selection ? "ie" : false));

                    if (browser === "ff") {
                        pos = $lastFocused.selectionStart;
                    }

                    var front = ($lastFocused.value).substring(0, pos);
                    var back = ($lastFocused.value).substring(pos, $lastFocused.value.length);
                    $lastFocused.value = front + text + back;
                    pos = pos + text.length;

                    $lastFocused.scrollTop = scrollPos;
                }

                //close the modal
                $("#close-template-modal-btn").trigger("click");
            }

            //init uninitialized rich editor to insert template 
            $("#insert-template-btn").click(function () {
                setSummernote($("#description"));
            });

            //insert ticket template
            $("body").on("click", "#ticket-template-table tr", function () {
                var template = $(this).find(".js-description").html();
                if (AppHelper.settings.enableRichTextEditor !== "1") {
                    //insert only text when rich editor isn't enabled
                    var template = $(this).find(".js-description").text();
                }

                if ($lastFocused === undefined) {
                    if (AppHelper.settings.enableRichTextEditor === "1") {
                        $("#description").summernote("code", template);
                    } else {
                        $("#description").text(template);
                    }

                    //close the modal
                    $("#close-template-modal-btn").trigger("click");
                } else {
                    insertTemplate(template);
                }

            });

            //set value 1, when click save as button
            $("#save-as-note-button").click(function () {
                $("#is-note").val('1');
                $(this).trigger("submit");
            });

            //set value 0, when click post comment button
            $("#save-ticket-comment-button").click(function () {
                $("#is-note").val('0');
            });

            $('[data-bs-toggle="tooltip"]').tooltip();
        });
    </script>