Making WordPress.org

Changeset 13690


Ignore:
Timestamp:
05/10/2024 12:42:51 PM (2 years ago)
Author:
amieiro
Message:

Translate: Sync "Translation Events" from GitHub

Location:
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/README.md

    r13268 r13690  
    11# wporg-gp-translation-events
     2
     3Here we are implementing Translation Events, as discussed in our Polyglots Make P2 Post: [Translation Events Prototype](https://make.wordpress.org/polyglots/2024/02/28/translation-events-prototype/).
    24
    35## Development environment
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/assets/css/translation-events.css

    r13683 r13690  
    5353
    5454.event-details-stats table {
    55         margin: 1rem;
    56 }
    57 
    58 .event-details-stats table {
    5955        width: 100%;
    6056        table-layout: fixed;
     
    6561        padding: 1em;
    6662        text-align: center;
     63        vertical-align: middle;
    6764}
    6865
     
    245242.event-page-wrapper {
    246243        margin: 0 auto;
     244        padding: 1em 0;
    247245        width: 80%;
    248246}
     
    257255        text-align: center;
    258256        display: inline;
    259         margin-top: 1em;
    260257        font-weight: bold;
    261258}
     
    385382
    386383ul.event-attendees-filter {
    387         padding-left: 1rem;
     384        margin-left: 0;
    388385}
    389386
     
    425422
    426423#quick-add {
     424        margin-top: -1em;
    427425        padding: 0 .5em;
    428426        border-left: #d9d8d8 thin solid;
     
    430428        max-height: 8em;
    431429        overflow: auto;
     430}
     431
     432a.remove-attendee.button {
     433        background-color: var(--gp-color-btn-danger-bg);
     434        color: var(--gp-color-btn-danger-text);
     435        border-color: var(----gp-color-btn-danger-border);
     436        margin-left: .1em;
     437}
     438
     439a.remove-attendee.button:hover {
     440        background-color: var(--gp-color-btn-danger-hover-bg);
     441        color: var(--gp-color-btn-danger-hover-text);
     442        border-color: var(----gp-color-btn-danger-hover-border);
    432443}
    433444
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/autoload.php

    r13683 r13690  
    3434require_once __DIR__ . '/includes/translation/translation-repository.php';
    3535require_once __DIR__ . '/includes/event-text-snippet.php';
     36require_once __DIR__ . '/includes/routes/attendee/list.php';
     37require_once __DIR__ . '/includes/routes/attendee/remove.php';
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/attendee/attendee-repository.php

    r13683 r13690  
    6767                        ),
    6868                );
     69
     70                $wpdb->delete(
     71                        "{$gp_table_prefix}event_actions",
     72                        array(
     73                                'event_id' => $event_id,
     74                                'user_id'  => $user_id,
     75                        ),
     76                        array(
     77                                '%d',
     78                                '%d',
     79                        ),
     80                );
     81
    6982                // phpcs:enable
    7083        }
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/event/event-repository.php

    r13683 r13690  
    131131
    132132                try {
    133                         $meta  = $this->get_event_meta( $id );
     133                        $meta = $this->get_event_meta( $id );
     134                        if ( ! $meta ) {
     135                                return null;
     136                        }
    134137                        $event = new Event(
    135138                                intval( $post->post_author ),
     
    502505         * @throws Exception
    503506         */
    504         private function get_event_meta( int $event_id ): array {
     507        private function get_event_meta( int $event_id ): ?array {
    505508                $meta = get_post_meta( $event_id );
    506509                $utc  = new DateTimeZone( 'UTC' );
     510
     511                if ( ! isset( $meta['_event_start'][0], $meta['_event_end'][0], $meta['_event_timezone'][0] ) ) {
     512                        return null;
     513                }
    507514
    508515                return array(
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/urls.php

    r13683 r13690  
    1313
    1414        public static function event_details( int $event_id ): string {
    15                 return gp_url( wp_make_link_relative( get_the_permalink( $event_id ) ) );
     15                // Drafts don't yet have a slug, so we need to generate a sample permalink.
     16                if ( 'draft' === get_post_status( $event_id ) ) {
     17                        // get_sample_permalink is only available in the admin, so we need to include the file in case we are elsewhere.
     18                        require_once ABSPATH . '/wp-admin/includes/post.php';
     19                        list( $permalink, $post_name ) = get_sample_permalink( $event_id );
     20                        $permalink                     = str_replace( '%pagename%', $post_name, $permalink );
     21                } else {
     22                        $permalink = get_permalink( $event_id );
     23                }
     24
     25                return gp_url( wp_make_link_relative( $permalink ) );
    1626        }
    1727
    1828        public static function event_details_absolute( int $event_id ): string {
    19                 list( $permalink, $post_name ) = get_sample_permalink( $event_id );
    20                 $permalink                     = str_replace( '%pagename%', $post_name, $permalink );
    21 
    22                 return get_site_url() . gp_url( wp_make_link_relative( $permalink ) );
     29                return site_url( self::event_details( $event_id ) );
    2330        }
    2431
     
    5865                return self::event_details( $event_id ) . 'attendees/';
    5966        }
     67
     68        public static function event_remove_attendee( int $event_id, int $user_id ): string {
     69                return gp_url( "/events/$event_id/attendees/remove/$user_id" );
     70        }
    6071}
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/templates/events-attendees.php

    r13683 r13690  
    5353                                                                        <input type="submit" class="button is-secondary convert-to-host" value="<?php echo esc_attr__( 'Make co-host', 'gp-translation-events' ); ?>"/>
    5454                                                        <?php endif; ?>
     55                                                        <?php if ( ! $attendee->is_host() ) : ?>
     56                                                                <a href="<?php echo esc_url( Urls::event_remove_attendee( $event->id(), $attendee->user_id() ) ); ?>" class="button remove-attendee"><?php esc_html_e( 'Remove', 'gp-translation-events' ); ?></a>
     57                                                        <?php endif; ?>
    5558                                                </form>
    5659                                        </td>
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/wporg-gp-translation-events.php

    r13683 r13690  
    113113                GP::$router->add( "/events/$slug", array( 'Wporg\TranslationEvents\Routes\Event\Details_Route', 'handle' ) );
    114114                GP::$router->add( "/events/$slug/attendees", array( 'Wporg\TranslationEvents\Routes\Attendee\List_Route', 'handle' ) );
     115                GP::$router->add( "/events/$id/attendees/remove/$id", array( 'Wporg\TranslationEvents\Routes\Attendee\Remove_Attendee_Route', 'handle' ) );
    115116
    116117                $stats_listener = new Stats_Listener(
Note: See TracChangeset for help on using the changeset viewer.