Plugin Directory


Ignore:
Timestamp:
10/13/2026 10:08:08 PM (5 days ago)
Author:
wpdienstplan
Message:

Update to version 3.9.0 from GitHub

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dienstplan/trunk/src/Assets.php

    r3742972 r3744969  
    99final class Assets
    1010{
    11     public const HANDLE_TOKENS       = 'dienstplan-tokens';
    12     public const HANDLE_CALENDAR     = 'dienstplan-calendar';
    13     public const HANDLE_ADMIN        = 'dienstplan-admin';
    14     public const HANDLE_EVENTS_ADMIN = 'dienstplan-events-admin';
    15     public const HANDLE_EVENTS       = 'dienstplan-events';
    16     public const HANDLE_FLATPICKR    = 'dienstplan-flatpickr';
    17     public const HANDLE_TARIFE       = 'dienstplan-admin-tarife';
    18     public const HANDLE_UPSELL       = 'dienstplan-admin-upsell';
     11    public const HANDLE_TOKENS        = 'dienstplan-tokens';
     12    public const HANDLE_COLOR_SCHEME  = 'dienstplan-color-scheme';
     13    public const HANDLE_CALENDAR      = 'dienstplan-calendar';
     14    public const HANDLE_ADMIN         = 'dienstplan-admin';
     15    public const HANDLE_EVENTS_ADMIN  = 'dienstplan-events-admin';
     16    public const HANDLE_EVENTS        = 'dienstplan-events';
     17    public const HANDLE_FLATPICKR     = 'dienstplan-flatpickr';
     18    public const HANDLE_TARIFE        = 'dienstplan-admin-tarife';
     19    public const HANDLE_UPSELL        = 'dienstplan-admin-upsell';
    1920
    2021    public function __construct(
    … …  
    2627    {
    2728        $baseUrl = plugin_dir_url($this->pluginFile);
     29        $baseDir = plugin_dir_path($this->pluginFile);
     30        // filemtime im Query-String, damit Asset-Fixes ohne Versionsbump den Browser-Cache invalidieren.
     31        $calendarCssVer = $this->assetVersion($baseDir . 'assets/frontend.css');
     32        $calendarJsVer  = $this->assetVersion($baseDir . 'assets/dienstplan.js');
     33        $schemeJsVer    = $this->assetVersion($baseDir . 'assets/color-scheme.js');
    2834        wp_register_style(self::HANDLE_TOKENS,    $baseUrl . 'assets/tokens.css', [], $this->version);
    29         wp_register_style(self::HANDLE_CALENDAR,  $baseUrl . 'assets/frontend.css', [self::HANDLE_TOKENS], $this->version);
    30         wp_register_script(self::HANDLE_CALENDAR, $baseUrl . 'assets/dienstplan.js', ['jquery', 'wp-i18n'], $this->version, true);
     35        wp_register_script(self::HANDLE_COLOR_SCHEME, $baseUrl . 'assets/color-scheme.js', [], $schemeJsVer, true);
     36        wp_register_style(self::HANDLE_CALENDAR,  $baseUrl . 'assets/frontend.css', [self::HANDLE_TOKENS], $calendarCssVer);
     37        wp_register_script(self::HANDLE_CALENDAR, $baseUrl . 'assets/dienstplan.js', ['jquery', 'wp-i18n', self::HANDLE_COLOR_SCHEME], $calendarJsVer, true);
    3138        wp_register_style(self::HANDLE_ADMIN,     $baseUrl . 'assets/admin.css', [], $this->version);
    3239        wp_register_script(self::HANDLE_ADMIN,    $baseUrl . 'assets/admin.js', ['jquery', 'wp-i18n'], $this->version, true);
    … …  
    3643        wp_register_script(self::HANDLE_EVENTS_ADMIN, $baseUrl . 'assets/events-admin.js', ['jquery', 'jquery-ui-sortable', 'wp-i18n', self::HANDLE_ADMIN, self::HANDLE_FLATPICKR], $this->version, true);
    3744        wp_register_style(self::HANDLE_EVENTS,        $baseUrl . 'assets/events.css', [self::HANDLE_TOKENS], $this->version);
    38         wp_register_script(self::HANDLE_EVENTS,       $baseUrl . 'assets/events.js', ['jquery', 'wp-i18n'], $this->version, true);
     45        wp_register_script(self::HANDLE_EVENTS,       $baseUrl . 'assets/events.js', ['jquery', 'wp-i18n', self::HANDLE_COLOR_SCHEME], $this->version, true);
    3946        wp_register_style(self::HANDLE_TARIFE,        $baseUrl . 'assets/admin-tarife.css', [], $this->version);
    4047        wp_register_style(self::HANDLE_UPSELL,        $baseUrl . 'assets/admin-upsell.css', [], $this->version);
    … …  
    6370    public function enqueueCalendarAssets(): void
    6471    {
     72        wp_enqueue_script(self::HANDLE_COLOR_SCHEME);
    6573        wp_enqueue_style(self::HANDLE_CALENDAR);
    6674        wp_enqueue_script(self::HANDLE_CALENDAR);
    … …  
    7280            'errorConnection' => __('Connection error. Please reload the page.', 'dienstplan'),
    7381            'removeTitle'     => __('Remove entry', 'dienstplan'),
     82            'assignSearch'    => __('Search members…', 'dienstplan'),
     83            'yourShift'       => _x('· Your shift', 'agenda own shift title', 'dienstplan'),
     84            'fullyStaffed'    => __('Fully staffed', 'dienstplan'),
     85            'ofFree'          => __('%1$d of %2$d free', 'dienstplan'),
     86            'filterAll'       => _x('All', 'agenda filter', 'dienstplan'),
     87            /* translators: %d: number of open shifts */
     88            'filterOpen'      => _x('Open %d', 'agenda filter', 'dienstplan'),
     89            /* translators: %d: number of own shifts */
     90            'filterMine'      => _x('Mine %d', 'agenda filter', 'dienstplan'),
     91            'removeAria'      => __('Remove', 'dienstplan'),
    7492        ]);
    7593        do_action('dienstplan_enqueue_calendar_assets');
    … …  
    109127    public function enqueueEventAssets(): void
    110128    {
     129        wp_enqueue_script(self::HANDLE_COLOR_SCHEME);
    111130        wp_enqueue_style(self::HANDLE_EVENTS);
    112131        wp_enqueue_script(self::HANDLE_EVENTS);
    … …  
    123142    }
    124143
    125     /** Frontend-CSS für [dienstplan_statistik] — nur Style, kein Kalender-JS. */
     144    /** Frontend-CSS für [dienstplan_statistik]; color-scheme.js für Auto-Erkennung (#191). */
    126145    public function enqueueStatisticsAssets(): void
    127146    {
     147        wp_enqueue_script(self::HANDLE_COLOR_SCHEME);
    128148        wp_enqueue_style(self::HANDLE_CALENDAR);
    129149        do_action('dienstplan_enqueue_statistik_assets');
    130150    }
     151
     152    /**
     153     * Plugin-Version plus Datei-mtime — Cache-Bust ohne SemVer-Bump.
     154     */
     155    private function assetVersion(string $absolutePath): string
     156    {
     157        $mtime = is_readable($absolutePath) ? (string) filemtime($absolutePath) : '0';
     158        return $this->version . '.' . $mtime;
     159    }
    131160}
Note: See TracChangeset for help on using the changeset viewer.