HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //var/www/html/appointmentbook.me/wp-content/plugins/booknetic/app/Backend/Base/view/data_table.php
<?php

defined( 'ABSPATH' ) or die();

use BookneticApp\Providers\Helpers\Helper;
use BookneticApp\Providers\Helpers\Date;

if( !$dataTable['is_ajax'] )
{
?>

<div class="m_header clearfix">
	<div class="m_head_title float-left"><?php echo $dataTable['title'] ?> <span class="badge badge-warning row_count"><?php echo $dataTable['row_count'] ?></span></div>
	<div class="m_head_actions float-right">

		<?php
		if( $dataTable['export_btn'] )
		{
			echo '<button type="button" class="btn btn-outline-secondary btn-lg export_csv"><i class="fa fa-upload"></i> ' . bkntc__('EXPORT TO CSV') . '</button>';
		}

		if( $dataTable['import_btn'] )
		{
			echo '<button type="button" class="btn btn-outline-secondary btn-lg" id="importBtn"><i class="fa fa-download"></i> ' . bkntc__('IMPORT') . '</button>';
		}

		if( !empty( $dataTable['add_new_btn'] ) )
		{
			echo '<button type="button" data-setp="1" class="btn btn-primary btn-lg" id="addBtn"><i class="fa fa-plus"></i> ' . $dataTable['add_new_btn'] . '</button>';
		}

		?>

	</div>
</div>

<?php
if( !$dataTable['hide_search'] )
{
	$getColMdForSearchPanel = 12;
	foreach ( $dataTable['filters'] AS $filterId => $filter )
	{
		$getColMdForSearchPanel -= (int)$filter['col_md'];
	}
?>
<div class="data_table_search_panel">
	<div class="row m-0 p-0">
		<div class="col-md-<?php echo $getColMdForSearchPanel?> m-0 p-0">
			<div class="input-icon">
				<i><img src="<?php echo Helper::icon('search.svg')?>"></i>
				<input type="text" class="form-control form-control-lg search_input" placeholder="<?php echo bkntc__('Quick search')?>" value="<?php echo htmlspecialchars($dataTable['search']) ?>">
			</div>
		</div>
		<?php

		foreach ( $dataTable['filters'] AS $filterId => $filter )
		{
			?>
			<div class="col-md-<?php echo $filter['col_md']?> m-0 p-0">
				<?php
				if( $filter['input_type'] == 'select' )
				{
					?>
					<select class="form-control" data-filter-id="<?php echo (int)$filterId?>" data-placeholder="<?php echo htmlspecialchars($filter['placeholder'])?>">

					</select>
					<?php
				}
				else if( $filter['input_type'] == 'date' )
				{
					?>
					<div class="position-relative">
						<input type="text" data-type="date" class="form-control" data-date-format="<?php echo htmlspecialchars(Helper::getOption('date_format', 'Y-m-d')) ?>" data-filter-id="<?php echo (int)$filterId?>" placeholder="<?php echo htmlspecialchars($filter['placeholder'])?>">
						<span class="datepicker_clear_btn">×</span>
					</div>
					<?php
				}
				else if( $filter['input_type'] == 'input' )
				{
					?>
					<input type="text" class="form-control" data-filter-id="<?php echo (int)$filterId?>" placeholder="<?php echo htmlspecialchars($filter['placeholder'])?>">
					<?php
				}
				?>

			</div>
			<?php
		}

		?>


	</div>

	<hr>
</div>
<?php
}
?>
<div class="m_content pt-0" id="fs_data_table_div">
	<?php
	}
	?>
	<div class="fs_data_table_wrapper">
		<table class="fs_data_table elegant_table">
			<thead>
			<tr>
				<th>
					<input type="checkbox" class="select_data_all_checkbox<?php echo $dataTable['bulk_action'] ? '' : ' hidden'?>" id="checkbox_select_all">
				</th>
				<?php

				foreach( $dataTable['thead'] AS $columnKey => $column )
				{
					$addClass = [];
					$addAttr = '';

					if( $column['is_sortable'] )
					{
						$addClass[] = 'is_sortable';

						if( $column['order_by_field'] == $dataTable['order_by'] )
						{
							$addClass[] = 'active_order_field';
							$addAttr .= ' data-order-type="' . ($dataTable['order_by_type'] == 'ASC' ? 'ASC' : 'DESC') . '"';
						}
					}

					$addClass = empty( $addClass ) ? '' : ' class="' . implode(' ', $addClass) . '"';

					echo '<th data-column="' . (int)$columnKey . '"' . $addClass . $addAttr . '>' . htmlspecialchars( $column['name'] ) . '</th>';
				}

				?>
				<th class="text-right">
					<button type="button" class="btn btn-xs btn-light prev_page"><i class="fa fa-caret-left"></i></button>
					<button type="button" class="btn btn-xs btn-light next_page"><i class="fa fa-caret-right"></i></button>
				</th>
			</tr>
			</thead>
			<tbody>
			<?php
			foreach ( $dataTable['tbody'] AS $rows )
			{
				$rid = $rows['id'];
				$attributes = '';
				foreach ( $dataTable['attributes'] AS $dataName => $dataValues )
				{
					$attributes .= ' data-' . $dataName . '="' . $dataValues . '"';
				}

				?>
				<tr data-id="<?php echo $rid?>"<?php echo $rows['attributes'] . ( !$rows['is_active'] ? ' data-disabled="true"' : '' )?>>
					<td><input type="checkbox" id="checkbox_select_all<?php echo $rid?>" class="select_data_checkbox <?php echo $dataTable['bulk_action'] ? '' : ' hidden'?>"></td>

					<?php
					foreach ( $rows['data'] AS $data )
					{
						$attributes = '';
						foreach ( $data['attributes'] AS $dataName => $dataValues )
						{
							$attributes .= ' data-' . $dataName . '="' . $dataValues . '"';
						}

						echo '<td'.$attributes.'>' . $data['content'] . '</td>';
					}
					?>

					<td class="text-right">
						<i class="fa fa-eye-slash row_is_disabled"></i>
						<span class="actions_btn" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false"><i class="fa fa-ellipsis-h"></i></span>
						<div class="dropdown-menu dropdown-menu-right row-actions-area">
							<?php foreach ( $dataTable['actions'] AS $key => $action ):?>
                            <?php if ($action['flags'] & \BookneticApp\Providers\UI\Abstracts\AbstractDataTableUI::ACTION_FLAG_SINGLE): ?>
								<button class="dropdown-item datatable_action_btn" data-action="<?php echo $key ?>" type="button"><?php echo $action['title']?></button>
                            <?php endif; ?>
							<?php endforeach;?>
						</div>
					</td>
				</tr>
				<?php
			}
			if( empty( $dataTable['tbody'] ) )
			{
				echo '<tr><td colspan="100%" class="pl-4 text-secondary">' . bkntc__('No entries!') . '</td></tr>';
			}
			?>
			</tbody>
		</table>
	</div>

	<div class="pagination row mt-4">
		<div class="col-md-12 d-flex flex-sm-row flex-column align-items-center justify-content-between">
            <div class="d-flex align-items-center mb-sm-0 mb-3">
                <span class="text-secondary mr-2 font-size-14"><?php echo bkntc__('Showing %d of %d total', [ count( $dataTable['tbody'] ) , $dataTable['row_count'] ])?></span>
                <?php

                if( $dataTable['pagination'] !== false )
                {
                    if( $dataTable['max_page'] <= 7 )
                    {
                        $startPage = 2;
                        $endPage = $dataTable['max_page'] - 1;
                    }
                    else
                    {
                        $startPage = $dataTable['current_page'] - 2;
                        $endPage = $startPage + 4;

                        if( $startPage < 2 )
                        {
                            $endPage += 2 - $startPage;
                            $startPage = 2;
                        }

                        if( $endPage > $dataTable['max_page'] - 1 )
                        {
                            $startPage -= 1 - ( $dataTable['max_page'] - $endPage );
                            $endPage = $dataTable['max_page'] - 1;
                        }
                    }

                    echo '<span class="page_class badge' . (1==$dataTable['current_page'] ? ' active_page badge-default' : '') . '">1</span>' . ($startPage > 2 ? ' ... ' : '');

                    for($page = $startPage; $page <= $endPage; $page++)
                    {
                        echo '<span class="page_class badge' . ($page==$dataTable['current_page'] ? ' active_page badge-default' : '') . '">' . $page . '</span>';
                    }

                    if( $dataTable['max_page'] >= 2 )
                    {
                        echo ($dataTable['max_page']-1 > $endPage ? ' ... ' : '') . '<span class="page_class badge' . ($dataTable['max_page']==$dataTable['current_page'] ? ' active_page badge-default' : '') . '">' . $dataTable['max_page'] . '</span>';
                    }
                }

                ?>
            </div>

			<a href="<?php echo htmlspecialchars(Helper::getOption('documentation_url', 'https://www.booknetic.com/documentation/', false))?>" class="need_help_btn" target="_blank"><i class="far fa-question-circle"></i> <?php echo bkntc__('Need Help?')?></a>
		</div>
	</div>
	<?php
	if( !$dataTable['is_ajax'] )
	{
	?>
</div>

<div class="m_bottom_fixed justify-content-between hidden px-3  ">
	<div ><?php echo bkntc__('Selected')?> <span class="badge badge-success ml-2 selected_count">2</span></div>

    <div class="d-flex align-items-center " style="min-width: 200px">

        <select name="" class="bulk_action form-control " >
            <?php foreach ( $dataTable['actions'] as $key => $action ): ?>
            <?php if ($action['flags'] & \BookneticApp\Providers\UI\Abstracts\AbstractDataTableUI::ACTION_FLAG_BULK): ?>
                <option value="<?php echo $key ?>"><?php echo $action['title'] ?></option>
            <?php endif; ?>
            <?php endforeach; ?>
        </select>

        <button type="button" class="btn btn-primary btn-lg btn-info ml-2 datatable_apply_btn"><?php echo bkntc__('Apply') ?></button>
    </div>

    <script>
        $(".bulk_action").select2({
            theme:'bootstrap',
            minimumResultsForSearch: -1
        });
    </script>

</div>
<?php
}
?>