Transactions

Template Structure

Transaction Filtering Form

  • <form action="transactions">: The form action directs to the "transactions" URL, where the filtered results will be submitted.

    • <div class="row mb-2">: Bootstrap row with margin-bottom.

      • <div class="col-md-5">: Column for transaction type and currency filters.

        • <label> Select Transaction Type </label>: Label for the transaction type dropdown.

        • <select name="type" class="form-select" onchange="if (this.value) window.location.href=this.value">: Dropdown to select transaction type. On change, it redirects to the selected URL.

          • <option value="transactions">All transactions</option>: Option to view all transactions.

          • {foreach from=$options item=label key=key}: Loops through available options to populate the dropdown.

            • <option value="{$label.link}" {if $key == $type}selected{/if}>{$label.name}</option>: Sets the option value and marks it as selected if it matches the current type.

        • <label> Select Currency</label>: Label for the currency dropdown.

        • <select name="cid" class="form-select">: Dropdown to select currency.

          • <option value="-1">All eCurrencies</option>: Option to view all eCurrencies.

          • {section name=p loop=$ps}: Loops through available currencies to populate the dropdown.

            • <option value={$ps[p].id} >{$ps[p].name}</option>: Sets the option value and name for each currency.

      • <div class="col-md-5">: Column for date range filters.

        • <label>From Date </label>: Label for the start date input.

        • <input type="date" name="from" value="{$startdate}" class="form-control" />: Input for selecting the start date with a default value.

        • <label> To Date </label>: Label for the end date input.

        • <input type="date" name="to" value="{$enddate}" class="form-control" />: Input for selecting the end date with a default value.

      • <div class="col-md-2 d-flex align-items-center">: Column for the submit button.

        • <button type="submit" class="btn btn-primary">Submit</button>: Submit button for the form.

Transaction Table

  • <div class="table-responsive">: Container for a responsive table.

    • <table class="table table-hover table-sm mb-0 table-bordered table-striped">: Table with hover effect, small size, borders, and striped rows.

      • <thead class="bg-primary text-white">: Table header with a primary background color and white text.

        • <tr>: Table row for headers.

          • <th>Type</th>: Column header for transaction type.

          • <th>Amount</th>: Column header for transaction amount.

          • <th>Date</th>: Column header for transaction date.

          • <th>Status</th>: Column header for transaction status.

      • <tbody>: Table body with transaction rows.

        • {foreach from=$rows key=key item=value}: Loops through the transactions to populate the table rows.

          • <tr>: Table row for each transaction.

            • <td>{$value.type}</td>: Displays the transaction type.

            • <td>{$value.amount|fiat:$value.cid} ~ ${$value.amount|currencytousd:$value.symbol}</td>: Displays the amount in both fiat and USD.

            • <td>{$value.datetime}</td>: Displays the transaction date and time.

            • <td>: Displays the status of the transaction with different badges and potentially a countdown timer if applicable.

              • {if ($settings.withdraw.delay_instant_withdraw || $settings.withdraw.delay_auto_withdraw) && $value.status == '0'}: Checks if the transaction is pending and has a delay.

                • <span class="badge bg-warning" id="time{$value.id}"></span>: Displays a warning badge with a countdown timer.

                • <script>: JavaScript to handle the countdown timer.

                  • var countDown{$value.id} = new Date("{$value.delay_time}").getTime();: Sets the countdown timer based on the delay time.

                  • var time{$value.id}a = setInterval(function() { ... }, 1000);: Updates the timer every second.

              • {elseif $value.status == '0'}: Displays a pending status if the transaction is still processing.

                • <span class="badge bg-primary">pending</span>: Displays a primary badge for pending transactions.

              • {if $value.status == '1'}: Displays a completed status if the transaction is successful.

                • <span class="badge bg-success">Completed</span>: Displays a success badge for completed transactions.

              • {if $value.status == '2'}: Displays a cancelled status if the transaction is cancelled.

                • <span class="badge bg-secondary">Cancelled</span>: Displays a secondary badge for cancelled transactions.

              • {if $settings.withdraw.cancel_withdraw && $value.status == '0'}: Displays a cancel link if the cancellation option is enabled and the transaction is pending.

                • <a class="badge bg-danger" href="{$settings.link.cancel_withdraw|default:'cancel_withdraw'}?id={$value.id}">Cancel</a>: Provides a link to cancel the transaction.

            • </td>: Closes the status column.

          • </tr>: Closes the transaction row.

          • <tr>: Table row for additional details.

            • <td colspan="4">{$value.detail}</td>: Displays additional transaction details spanning all columns.

        • {foreachelse}: Handles the case when no transactions are available.

          • <tr>: Table row for "No transactions found" message.

            • <td colspan=4 align=center>No transactions found</td>: Displays a message indicating no transactions are found.

      • </tbody>: Closes the table body.

    • {$paginator}: Includes pagination controls if available.

Last updated