Making WordPress.org

Changeset 13690


Ignore:
Timestamp:
05/10/2024 12:42:51 PM (14 months 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.