rest_url('reservations/v1'), 'nonce' => wp_create_nonce('wp_rest'), ]); wp_localize_script('rsv_api', 'ReservairStrings', [ 'timeline' => [ 'not_reservable' => 'Tento objekt nelze rezervovat.', 'no_blocks' => 'Tento den není dostupný žádný blok. Vyberte jiné datum.', 'seats' => 'míst', ], 'summary' => [ 'title' => 'Vybrané termíny', 'clear_all' => 'Smazat vše', 'count_one' => '1 termín', 'count_few' => '%d termíny', 'count_many' => '%d termínů', 'currency' => 'Kč', ], 'form' => [ 'success_title' => 'Rezervace potvrzena!', 'success_subtitle' => 'Potvrzení jsme zaslali na váš e‑mail.', 'new_reservation' => 'Nová rezervace', 'error_generic' => 'Něco se pokazilo. Zkuste to prosím znovu.', ], ]); rsv_css('reservations-styles', 'css/RsvMainStyle.css'); rsv_css('rsv-form-summary-styles', 'css/components/RsvFormSummaryStyles.css'); rsv_css('rsv-calendar-styles', 'css/components/RsvCalendarStyles.css'); rsv_css('rsv-form-styles', 'css/components/RsvFormStyles.css'); rsv_css('rsv-time-slot-styles', 'css/components/RsvTimeSlotsStyles.css'); } // --- Public hooks --- function rsv_enqueue_assets(): void { rsv_enqueue_shared_assets(); rsv_js('rsv_timetable_service', 'js/services/RsvTimetableService.js'); rsv_js('rsv_form_sender', 'js/forms/RsvFormSender.js'); rsv_js('rsv_form_encoder', 'js/forms/RsvFormEncoder.js'); } function rsv_enqueue_admin_assets(): void { rsv_enqueue_shared_assets(); $admin_js = plugin_dir_path(__FILE__) . '../src/components/admin.js'; wp_enqueue_script('admin', plugin_dir_url(__FILE__) . '../src/components/admin.js', [], filemtime($admin_js)); rsv_js('rsv_inline_form_builder', 'js/forms/RsvInlineFormBuilder.js'); rsv_js('datagrid', 'js/elements/RsvDatagrid.js'); rsv_js('rsv_form_encoder', 'js/forms/RsvFormEncoder.js'); // RsvAdminForm needs the encoder, the localized nonce (rsv_api), and // show_notice() (admin) — declare them as deps so load order is correct. rsv_js('rsv_admin_form', 'js/forms/RsvAdminForm.js', ['rsv_form_encoder', 'rsv_api', 'admin']); rsv_css('rsv-admin-style', 'css/RsvAdminStyle.css'); }