get_board_snapshot(); $sections = array( 'generating' => array( 'label' => __( 'Generating', 'prautoblogger' ), 'chip' => 'generating', 'cards' => $snapshot['generating'], ), 'in_review' => array( 'label' => __( 'In review', 'prautoblogger' ), 'chip' => 'in_review', 'cards' => $snapshot['in_review'], ), 'published' => array( 'label' => __( 'Published', 'prautoblogger' ), 'chip' => 'published', 'cards' => $snapshot['published'], ), 'failed' => array( 'label' => __( 'Failed', 'prautoblogger' ), 'chip' => 'failed', 'cards' => $snapshot['failed'], ), ); $ideas_url = esc_url( admin_url( 'admin.php?page=prautoblogger-ideas' ) ); ?>

$section ) : ?>

$card Card data from Board_Data_Provider. * @param string $section_key Section identifier (generating|in_review|published|failed). * @return void */ function prab_render_board_row( array $card, string $section_key ): void { $title = ! empty( $card['title'] ) ? esc_html( $card['title'] ) : esc_html__( 'Untitled', 'prautoblogger' ); $run_id = esc_attr( (string) ( $card['run_id'] ?? '' ) ); $post_id = esc_attr( (string) ( $card['post_id'] ?? 0 ) ); $cost = isset( $card['cost_total'] ) ? '$' . esc_html( number_format( (float) $card['cost_total'], 4 ) ) : ''; $is_failed = ( 'failed' === $section_key ); // Elapsed time. $elapsed = ''; $started_ts = (int) ( $card['started_at'] ?? $card['created_at'] ?? 0 ); if ( $started_ts > 0 ) { $diff = max( 0, time() - $started_ts ); $elapsed = $diff < 60 ? sprintf( /* translators: %d: seconds */ esc_html__( '%ds', 'prautoblogger' ), $diff ) : sprintf( /* translators: %d: minutes */ esc_html__( '%dm', 'prautoblogger' ), (int) floor( $diff / 60 ) ); } $row_class = 'prab-run-row'; if ( $is_failed || 'failed' === ( $card['status'] ?? '' ) ) { $row_class .= ' prab-run-row--failed'; } ?>
__( 'Generating', 'prautoblogger' ), 'in_review' => __( 'In review', 'prautoblogger' ), 'published' => __( 'Published', 'prautoblogger' ), 'failed' => __( 'Failed', 'prautoblogger' ), ); echo esc_html( $chip_labels[ $section_key ] ?? ucfirst( $section_key ) ); ?> H