Files

196 lines
12 KiB
PHP

<div class="wrap pcfb-wrap">
<h1 class="wp-heading-inline">
<span class="pcfb-heading-icon dashicons dashicons-forms"></span>
<?php esc_html_e( 'All Forms', 'pc-form-builder-xyz123' ); ?>
</h1>
<a href="<?php echo admin_url( 'admin.php?page=pcfb-form-builder' ); ?>" class="page-title-action">
<span class="dashicons dashicons-plus"></span>
<?php esc_html_e( 'Add New Form', 'pc-form-builder-xyz123' ); ?>
</a>
<hr class="wp-header-end">
<?php
$forms = PC_Form_Handler::get_forms( array( 'limit' => 50, 'status' => '' ) );
$active_count = PC_Form_Handler::get_form_count( 'active' );
$inactive_count = PC_Form_Handler::get_form_count( 'inactive' );
$total_responses = 0;
foreach ( $forms as $form ) {
$total_responses += PC_Form_Handler::get_form_response_count( $form->id );
}
?>
<div class="pcfb-all-forms-page">
<div class="pcfb-stats-row">
<div class="pcfb-stat-card">
<div class="pcfb-stat-icon pcfb-stat-icon-blue">
<span class="dashicons dashicons-forms"></span>
</div>
<div class="pcfb-stat-content">
<span class="pcfb-stat-number"><?php echo esc_html( count( $forms ) ); ?></span>
<span class="pcfb-stat-label"><?php esc_html_e( 'Total Forms', 'pc-form-builder-xyz123' ); ?></span>
</div>
</div>
<div class="pcfb-stat-card">
<div class="pcfb-stat-icon pcfb-stat-icon-green">
<span class="dashicons dashicons-yes-alt"></span>
</div>
<div class="pcfb-stat-content">
<span class="pcfb-stat-number"><?php echo esc_html( $active_count ); ?></span>
<span class="pcfb-stat-label"><?php esc_html_e( 'Active Forms', 'pc-form-builder-xyz123' ); ?></span>
</div>
</div>
<div class="pcfb-stat-card">
<div class="pcfb-stat-icon pcfb-stat-icon-orange">
<span class="dashicons dashicons-hidden"></span>
</div>
<div class="pcfb-stat-content">
<span class="pcfb-stat-number"><?php echo esc_html( $inactive_count ); ?></span>
<span class="pcfb-stat-label"><?php esc_html_e( 'Inactive Forms', 'pc-form-builder-xyz123' ); ?></span>
</div>
</div>
<div class="pcfb-stat-card">
<div class="pcfb-stat-icon pcfb-stat-icon-purple">
<span class="dashicons dashicons-pressthis"></span>
</div>
<div class="pcfb-stat-content">
<span class="pcfb-stat-number"><?php echo esc_html( $total_responses ); ?></span>
<span class="pcfb-stat-label"><?php esc_html_e( 'Total Signups', 'pc-form-builder-xyz123' ); ?></span>
</div>
</div>
</div>
<?php if ( empty( $forms ) ) : ?>
<div class="pcfb-empty-state">
<span class="dashicons dashicons-forms pcfb-empty-icon"></span>
<h3><?php esc_html_e( 'No forms created yet', 'pc-form-builder-xyz123' ); ?></h3>
<p><?php esc_html_e( 'Create your first form to start collecting responses from your visitors.', 'pc-form-builder-xyz123' ); ?></p>
<a href="<?php echo admin_url( 'admin.php?page=pcfb-form-builder' ); ?>" class="button button-primary">
<?php esc_html_e( 'Create Your First Form', 'pc-form-builder-xyz123' ); ?>
</a>
</div>
<?php else : ?>
<div class="pcfb-forms-table-card">
<div class="pcfb-card-header pcfb-table-header">
<h2><?php esc_html_e( 'Your Forms', 'pc-form-builder-xyz123' ); ?></h2>
</div>
<table class="widefat pcfb-table pcfb-forms-table">
<thead>
<tr>
<th class="column-primary"><?php esc_html_e( 'Form Name', 'pc-form-builder-xyz123' ); ?></th>
<th><?php esc_html_e( 'Shortcode', 'pc-form-builder-xyz123' ); ?></th>
<th><?php esc_html_e( 'Fields', 'pc-form-builder-xyz123' ); ?></th>
<th><?php esc_html_e( 'Signups', 'pc-form-builder-xyz123' ); ?></th>
<th><?php esc_html_e( 'Status', 'pc-form-builder-xyz123' ); ?></th>
<th><?php esc_html_e( 'Created', 'pc-form-builder-xyz123' ); ?></th>
<th class="column-actions"><?php esc_html_e( 'Actions', 'pc-form-builder-xyz123' ); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ( $forms as $form ) : ?>
<?php
$field_count = pcfb_get_field_count( $form->id );
$response_count = PC_Form_Handler::get_form_response_count( $form->id );
$edit_url = admin_url( 'admin.php?page=pcfb-form-builder&form_id=' . $form->id );
$responses_url = admin_url( 'admin.php?page=pcfb-responses&form_id=' . $form->id );
$status_class = 'active' === $form->status ? 'status-active' : 'status-inactive';
$status_text = 'active' === $form->status ? __( 'Active', 'pc-form-builder-xyz123' ) : __( 'Inactive', 'pc-form-builder-xyz123' );
?>
<tr>
<td class="column-primary">
<strong>
<a href="<?php echo esc_url( $edit_url ); ?>">
<?php echo esc_html( $form->name ); ?>
</a>
</strong>
<div class="row-actions">
<span class="edit"><a href="<?php echo esc_url( $edit_url ); ?>"><?php esc_html_e( 'Edit', 'pc-form-builder-xyz123' ); ?></a> | </span>
<span class="responses"><a href="<?php echo esc_url( $responses_url ); ?>"><?php esc_html_e( 'Responses', 'pc-form-builder-xyz123' ); ?></a> | </span>
<span class="delete"><button type="button" class="pcfb-delete-form-link" data-form-id="<?php echo esc_attr( $form->id ); ?>" data-form-name="<?php echo esc_attr( $form->name ); ?>"><?php esc_html_e( 'Delete', 'pc-form-builder-xyz123' ); ?></button></span>
</div>
<?php if ( $form->description ) : ?>
<br>
<small class="description"><?php echo esc_html( $form->description ); ?></small>
<?php endif; ?>
</td>
<td data-colname="<?php esc_attr_e( 'Shortcode', 'pc-form-builder-xyz123' ); ?>">
<code class="pcfb-shortcode" onclick="this.select(); document.execCommand('copy');" title="<?php esc_attr_e( 'Click to copy', 'pc-form-builder-xyz123' ); ?>">
[pcfb-form id="<?php echo esc_attr( $form->id ); ?>"]
</code>
</td>
<td data-colname="<?php esc_attr_e( 'Fields', 'pc-form-builder-xyz123' ); ?>">
<span class="pcfb-field-badge"><?php echo esc_html( $field_count ); ?></span>
</td>
<td data-colname="<?php esc_attr_e( 'Signups', 'pc-form-builder-xyz123' ); ?>">
<?php if ( $response_count > 0 ) : ?>
<a href="<?php echo esc_url( $responses_url ); ?>" class="pcfb-signups-link">
<span class="pcfb-signup-count"><?php echo esc_html( $response_count ); ?></span>
</a>
<?php else : ?>
<span class="pcfb-signup-count zero"><?php echo esc_html( $response_count ); ?></span>
<?php endif; ?>
</td>
<td data-colname="<?php esc_attr_e( 'Status', 'pc-form-builder-xyz123' ); ?>">
<span class="pcfb-status <?php echo esc_attr( $status_class ); ?>">
<?php echo esc_html( $status_text ); ?>
</span>
</td>
<td data-colname="<?php esc_attr_e( 'Created', 'pc-form-builder-xyz123' ); ?>">
<?php echo esc_html( date_i18n( get_option( 'date_format' ), strtotime( $form->created_at ) ) ); ?>
</td>
<td class="column-actions" data-colname="<?php esc_attr_e( 'Actions', 'pc-form-builder-xyz123' ); ?>">
<div class="pcfb-actions">
<a href="<?php echo esc_url( $edit_url ); ?>" class="button button-small" title="<?php esc_attr_e( 'Edit Form', 'pc-form-builder-xyz123' ); ?>">
<span class="dashicons dashicons-edit"></span>
</a>
<a href="<?php echo esc_url( $responses_url ); ?>" class="button button-small" title="<?php esc_attr_e( 'View Responses', 'pc-form-builder-xyz123' ); ?>">
<span class="dashicons dashicons-pressthis"></span>
</a>
<button type="button" class="button button-small pcfb-delete-form" data-form-id="<?php echo esc_attr( $form->id ); ?>" data-form-name="<?php echo esc_attr( $form->name ); ?>" title="<?php esc_attr_e( 'Delete Form', 'pc-form-builder-xyz123' ); ?>">
<span class="dashicons dashicons-trash"></span>
</button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div>
<div id="pcfb-delete-modal" class="pcfb-modal" style="display: none;">
<div class="pcfb-modal-content">
<div class="pcfb-modal-header">
<h3><?php esc_html_e( 'Delete Form', 'pc-form-builder-xyz123' ); ?></h3>
<button type="button" class="pcfb-modal-close">&times;</button>
</div>
<div class="pcfb-modal-body">
<p><?php esc_html_e( 'Are you sure you want to delete this form? All responses will also be deleted. This action cannot be undone.', 'pc-form-builder-xyz123' ); ?></p>
<p><strong id="pcfb-delete-form-name"></strong></p>
</div>
<div class="pcfb-modal-footer">
<form method="post" id="pcfb-delete-form">
<?php wp_nonce_field( 'pcfb_admin_action', '_wpnonce' ); ?>
<input type="hidden" name="pcfb_action" value="delete_form">
<input type="hidden" name="form_id" id="pcfb-delete-form-id" value="">
<button type="button" class="button pcfb-modal-cancel"><?php esc_html_e( 'Cancel', 'pc-form-builder-xyz123' ); ?></button>
<button type="submit" class="button button-primary"><?php esc_html_e( 'Delete Form', 'pc-form-builder-xyz123' ); ?></button>
</form>
</div>
</div>
</div>
</div>
<?php
function pcfb_get_field_count( $form_id ) {
global $wpdb;
$table_name = $wpdb->prefix . 'pcfb_fields';
return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$table_name} WHERE form_id = %d", $form_id ) );
}
?>