Uname:Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64

403WebShell
403Webshell
Server IP : 13.126.101.145  /  Your IP : 216.73.216.63
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.3.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/rentals_updated/wp-content/plugins/woocommerce-rfq/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/rentals_updated/wp-content/plugins/woocommerce-rfq/multiselect-rfq-column.php
<div class="form-group" style="margin-bottom:unset;">
    <label for="columnSelector">Select Columns:</label>
    <select id="columnSelector" multiple class="form-control">
        <option value="0">Sr. No</option>
        <option value="1">RMS ID</option>
        <option value="2">RMS Order ID</option>
        <option value="3">Customer Name</option>
    <option value="4">Customer Email</option>
    <option value="5">Product Name</option>
    <option value="6">Start Date</option>
    <option value="7">End Date</option>
    <option value="8">Shifts</option>
    <option value="9">Location</option>
    <option value="10">Listing Price</option>
    <!-- <option value="9">Discount</option> -->
    <!-- <option value="10">Final Price</option> -->
    <option value="11">Customer Status</option>
    <option value="12">RFQ Status</option>
    <option value="13">Applications</option>
    <option value="14">Requested On</option>
    <option value="15" >Quote Status</option>
    <option value="16">Actions</option>
    </select>
</div>

<style>
select[multiple] {
    height: 150px;
    width: 100%;
    font-size: 14px;
    line-height: 1.5;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px;
    box-sizing: border-box;
    background-color: #f8f9fa;
    color: #333;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

select[multiple]:focus {
    border-color: #007bff;
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    outline: none;
}

.multiselect-container {
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    background-color: #fff;
    padding: 10px;
    box-sizing: border-box;
}

.multiselect-item-checkbox {
    margin-left: auto;
}

.dropdown-item {
    color: #333;
    padding: 5px 10px;
    border-radius: 3px;
    transition: background-color 0.2s ease, color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dropdown-item:hover {
    background-color: #f1f1f1;
    color: #007bff;
}

.dropdown-item.active {
    background-color: unset;
    color: #000;
}

.multiselect-container .multiselect-item label {
    display: flex;
    align-items: center;
    padding: 5px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    justify-content: space-between;
}

.multiselect-container .multiselect-item label:hover {
    background-color: #f1f1f1;
}

.multiselect-container .multiselect-item label input[type="checkbox"] {
    margin-left: auto;
}

.multiselect-container .multiselect-item.active {
    background-color: #007bff;
    color: #fff;
    border-radius: 3px;
}
.form-group input[type=checkbox]{
    margin: 8px 0px 0px -24px !important
}
</style>

<script>
jQuery(document).ready(function(jQuery) {
    // Initialize DataTable with initial column visibility settings
    var dataTable = jQuery('#rfq-table').DataTable({
    "scrollX": true,
        "columnDefs": [
            { "visible": true, "targets": [0, 1, 2, 3, 4, 12] }, 
            { "visible": false, "targets": '_all' } // Hide all other columns
        ]
    });

    // Initialize Bootstrap Multiselect without search/filter
    jQuery('#columnSelector').multiselect({
        includeSelectAllOption: true, // Enable select all option
        enableFiltering: false, // Disable filtering/search
        maxHeight: 300,
        numberDisplayed: 5,
        buttonText: function(options, select) {
            var selectedCount = options.length;
            return selectedCount + ' selected';
        },
        onChange: function(element, checked) {
            var column = jQuery(element).val();
            // Toggle column visibility
            dataTable.column(column).visible(checked);
             // Save column visibility state to localStorage
             saveColumnVisibility();
        },
        onSelectAll: function() {
            jQuery('#columnSelector option').each(function() {
                var columnIdx = jQuery(this).val();
                dataTable.column(columnIdx).visible(true);
                saveColumnVisibility();
            });
        },
        onDeselectAll: function() {
            jQuery('#columnSelector option').each(function() {
                var columnIdx = jQuery(this).val();
                dataTable.column(columnIdx).visible(false);
                saveColumnVisibility();
            });
        }
    });

    // Pre-select the columns you want initially
    jQuery('#columnSelector').multiselect('select', ['0', '1', '2', '3', '4', '12']); // Selecting '12' assuming it corresponds to "Actions"
    jQuery('#columnSelector').multiselect('updateButtonText');

    // Handle initial state for the column visibility in DataTable
    jQuery('#columnSelector option').each(function() {
        var columnIdx = jQuery(this).val();
        var isVisible = dataTable.column(columnIdx).visible();
        jQuery(this).prop('selected', isVisible);
    });

    jQuery('#columnSelector').multiselect('refresh');
     // Function to save column visibility state to localStorage
     function saveColumnVisibility() {
            var visibleColumns = [];
            jQuery('#columnSelector option').each(function() {
                var columnIdx = jQuery(this).val();
                var isVisible = dataTable.column(columnIdx).visible();
                if (isVisible) {
                    visibleColumns.push(columnIdx);
                }
            });
            localStorage.setItem('columnVisibility', JSON.stringify(visibleColumns));
        }

        // Function to load column visibility state from localStorage
        function loadColumnVisibility() {
            var visibleColumns = JSON.parse(localStorage.getItem('columnVisibility'));
            if (visibleColumns) {
                dataTable.columns().visible(false);
                jQuery('#columnSelector').multiselect('deselectAll', false);
                jQuery.each(visibleColumns, function(index, columnIdx) {
                    dataTable.column(columnIdx).visible(true);
                    jQuery('#columnSelector').multiselect('select', columnIdx);
                });
            } else {
                // Pre-select the first 5 columns if no visibility state is saved
                jQuery('#columnSelector').multiselect('select', ['0', '1', '2', '3', '4']);
            }
            jQuery('#columnSelector').multiselect('updateButtonText');
        }

        // Load column visibility state on page load
        loadColumnVisibility();
});
</script>


Youez - 2016 - github.com/yon3zu
LinuXploit