| <?php |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| class WP_Application_Passwords_List_Table extends WP_List_Table { |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function get_columns() { |
| return array( |
| 'name' => __( 'Name' ), |
| 'created' => __( 'Created' ), |
| 'last_used' => __( 'Last Used' ), |
| 'last_ip' => __( 'Last IP' ), |
| 'revoke' => __( 'Revoke' ), |
| ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function prepare_items() { |
| global $user_id; |
| $this->items = array_reverse( WP_Application_Passwords::get_user_application_passwords( $user_id ) ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function column_name( $item ) { |
| echo esc_html( $item['name'] ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function column_created( $item ) { |
| if ( empty( $item['created'] ) ) { |
| echo '—'; |
| } else { |
| echo date_i18n( __( 'F j, Y' ), $item['created'] ); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function column_last_used( $item ) { |
| if ( empty( $item['last_used'] ) ) { |
| echo '—'; |
| } else { |
| echo date_i18n( __( 'F j, Y' ), $item['last_used'] ); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function column_last_ip( $item ) { |
| if ( empty( $item['last_ip'] ) ) { |
| echo '—'; |
| } else { |
| echo $item['last_ip']; |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function column_revoke( $item ) { |
| $name = 'revoke-application-password-' . $item['uuid']; |
| printf( |
| '<button type="button" name="%1$s" id="%1$s" class="button delete" aria-label="%2$s">%3$s</button>', |
| esc_attr( $name ), |
| |
| esc_attr( sprintf( __( 'Revoke "%s"' ), $item['name'] ) ), |
| __( 'Revoke' ) |
| ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| protected function column_default( $item, $column_name ) { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| do_action( "manage_{$this->screen->id}_custom_column", $column_name, $item ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| protected function display_tablenav( $which ) { |
| ?> |
| <div class="tablenav <?php echo esc_attr( $which ); ?>"> |
| <?php if ( 'bottom' === $which ) : ?> |
| <div class="alignright"> |
| <button type="button" name="revoke-all-application-passwords" id="revoke-all-application-passwords" class="button delete"><?php _e( 'Revoke all application passwords' ); ?></button> |
| </div> |
| <?php endif; ?> |
| <div class="alignleft actions bulkactions"> |
| <?php $this->bulk_actions( $which ); ?> |
| </div> |
| <?php |
| $this->extra_tablenav( $which ); |
| $this->pagination( $which ); |
| ?> |
| <br class="clear" /> |
| </div> |
| <?php |
| } |
| |
| /** |
| * Generates content for a single row of the table. |
| * |
| * @since 5.6.0 |
| * |
| * @param array $item The current item. |
| */ |
| public function single_row( $item ) { |
| echo '<tr data-uuid="' . esc_attr( $item['uuid'] ) . '">'; |
| $this->single_row_columns( $item ); |
| echo '</tr>'; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| protected function get_default_primary_column_name() { |
| return 'name'; |
| } |
|
|
| |
| |
| |
| |
| |
| public function print_js_template_row() { |
| list( $columns, $hidden, , $primary ) = $this->get_column_info(); |
|
|
| echo '<tr data-uuid="{{ data.uuid }}">'; |
|
|
| foreach ( $columns as $column_name => $display_name ) { |
| $is_primary = $primary === $column_name; |
| $classes = "{$column_name} column-{$column_name}"; |
|
|
| if ( $is_primary ) { |
| $classes .= ' has-row-actions column-primary'; |
| } |
|
|
| if ( in_array( $column_name, $hidden, true ) ) { |
| $classes .= ' hidden'; |
| } |
|
|
| printf( '<td class="%s" data-colname="%s">', esc_attr( $classes ), esc_attr( wp_strip_all_tags( $display_name ) ) ); |
|
|
| switch ( $column_name ) { |
| case 'name': |
| echo '{{ data.name }}'; |
| break; |
| case 'created': |
| |
| echo '<# print( wp.date.dateI18n( ' . wp_json_encode( __( 'F j, Y' ) ) . ', data.created ) ) #>'; |
| break; |
| case 'last_used': |
| echo '<# print( data.last_used !== null ? wp.date.dateI18n( ' . wp_json_encode( __( 'F j, Y' ) ) . ", data.last_used ) : '—' ) #>"; |
| break; |
| case 'last_ip': |
| echo "{{ data.last_ip || '—' }}"; |
| break; |
| case 'revoke': |
| printf( |
| '<button type="button" class="button delete" aria-label="%1$s">%2$s</button>', |
| |
| esc_attr( sprintf( __( 'Revoke "%s"' ), '{{ data.name }}' ) ), |
| esc_html__( 'Revoke' ) |
| ); |
| break; |
| default: |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| do_action( "manage_{$this->screen->id}_custom_column_js_template", $column_name ); |
| break; |
| } |
|
|
| if ( $is_primary ) { |
| echo '<button type="button" class="toggle-row"><span class="screen-reader-text">' . |
| |
| __( 'Show more details' ) . |
| '</span></button>'; |
| } |
|
|
| echo '</td>'; |
| } |
|
|
| echo '</tr>'; |
| } |
| } |
|
|