PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.1.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.1.0
2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 1.41 All 42 releases
← All changes | app/Hooks/Handlers/AdminMenuHandler.php +28 -15 2.0.12.1.0 View file →
@@ -126,8 +126,17 @@
126 126 );
127 127
128 128 add_submenu_page(
129 129 'fluent-boards',
130 + __('Addons', 'fluent-boards'),
131 + __('Addons', 'fluent-boards'),
132 + 'manage_options',
133 + 'fluent-boards#/add-ons',
134 + [$this, 'render']
135 + );
136 +
137 + add_submenu_page(
138 + 'fluent-boards',
130 139 __('Settings', 'fluent-boards'),
131 140 __('Settings', 'fluent-boards'),
132 141 'manage_options',
133 142 'fluent-boards#/settings/general-settings',
@@ -295,23 +304,11 @@
295 304
296 305 // Inject Vite HMR client in dev mode
297 306 Vite::injectViteClient();
298 307
299 - $isRtl = is_rtl();
300 - $adminAppCss = $isRtl ? 'scss/admin.scss' : 'scss/admin.scss';
301 - Vite::enqueueStyle($slug . '_admin_app', $adminAppCss);
308 + $isRtl = fluent_boards_is_rtl();
309 + Vite::enqueueStyle($slug . '_admin_app', 'scss/admin.scss');
302 310
303 - // In production, load the RTL version if needed
304 - if ($isRtl && !Vite::underDevelopment()) {
305 - $assets = $app['url.assets'];
306 - wp_enqueue_style(
307 - $slug . '_admin_app_rtl',
308 - $assets . 'admin/admin-rtl.css',
309 - [$slug . '_admin_app'],
310 - FLUENT_BOARDS_PLUGIN_VERSION
311 - );
312 - }
313 -
314 311 // Enqueue merged chunk CSS (Vue SFC styles) in production
315 312 if (!Vite::underDevelopment()) {
316 313 $assets = $app['url.assets'];
317 314 $styleCssPath = FLUENT_BOARDS_PLUGIN_PATH . 'assets/admin/style.css';
@@ -324,8 +321,23 @@
324 321 );
325 322 }
326 323 }
327 324
325 + // RTL overrides must load after style.css so rules appended to the
326 + // element-plus layer win by source order, not only by specificity.
327 + if ($isRtl) {
328 + $rtlDeps = [$slug . '_admin_app'];
329 + if (wp_style_is($slug . '_vite_style', 'enqueued')) {
330 + $rtlDeps[] = $slug . '_vite_style';
331 + }
332 + Vite::enqueueStyle(
333 + $slug . '_admin_app_rtl',
334 + 'scss/admin_rtl.scss',
335 + $rtlDeps,
336 + FLUENT_BOARDS_PLUGIN_VERSION
337 + );
338 + }
339 +
328 340 do_action('fluent-boards_loading_app');
329 341
330 342 Vite::enqueueScript(
331 343 $slug . '_admin_app',
@@ -379,8 +391,9 @@
379 391 'has_pro' => !!defined('FLUENT_BOARDS_PRO_VERSION'),
380 392 'upgrade_url' => fluent_boards_get_upgrade_url(),
381 393 'board_solid_colors' => Constant::BOARD_BACKGROUND_DEFAULT_SOLID_COLORS,
382 394 'board_gradient_colors' => Constant::BOARD_BACKGROUND_DEFAULT_GRADIENT_COLORS,
395 + 'label_color_presets' => Constant::LABEL_COLOR_PRESETS,
383 396 'ai_features' => [
384 397 'enabled' => (new \FluentBoards\App\Services\AiService())->isReady(),
385 398 ],
386 399 'me' => [
@@ -419,9 +432,9 @@
419 432 'dashiconsCss' => add_query_arg(
420 433 'ver', get_bloginfo('version'),
421 434 site_url('/wp-includes/css/dashicons.css')
422 435 ),
423 - 'is_rtl' => is_rtl(),
436 + 'is_rtl' => fluent_boards_is_rtl(),
424 437 'board_menu_items' => BoardMenuHandler::getMenuItems(),
425 438 'reminder_types' => defined('FLUENT_BOARDS_PRO') ? Helper::taskReminderTypes() : [],
426 439 ]);
427 440 }